Unity3D C#/变量已分配但从未使用过(?)

Unity3D C#/Variable assigned but never used(?)

我有一个小问题,我写了我的变量,我可以看到它们被声明和使用,但是统一控制台说它的值从未被使用过...变量是 distanceY

"Assets/Scripts/CameraWindowMove.cs(17,22): warning CS0414: The private field `CameraWindowMove.distanceY' is assigned but its value is never used"

我不知道是什么问题,有人可以帮助我吗?

代码示例如下:

float distanceX, distanceY;

void Awake ()
{
    playerBoxCollider = GameObject.Find ("Player").GetComponent<BoxCollider2D> ();
    windowBoxCollider = GetComponent<BoxCollider2D> ();
    player = GameObject.Find ("Player");

}

void Start ()
{
    x = transform.position.x;
    y = transform.position.y;
    lookAhead = 0;
    distanceX = ((windowBoxCollider.bounds.size.x / 2) - (playerBoxCollider.bounds.size.x / 2));
    distanceY = ((windowBoxCollider.bounds.size.y / 2) - (playerBoxCollider.bounds.size.y / 2));

这个警告告诉你,你只设置了 distanceY 的值,但没有在任何地方使用它的值。

这只是一个构建警告,它不会影响您的程序的功能。这是一个有价值的警告,它让您知道您创建了一个变量,并为其分配了一个值,但之后从未在您的程序中使用过它(就静态分析而言)。

在 C# 中,您可以通过脚本文件顶部的 pragma 禁用它们

一些常见的是:

#pragma warning disable 0168  // variable declared but not used.
#pragma warning disable 0219  // variable assigned but not used.
#pragma warning disable 0414  // private field assigned but not used.

我不建议使用这些禁用,因为这些警告很有用。这只是为了开发。