无法读取更新的变量

时间:2014-09-28 10:08:35

标签: c# variables unity3d rotation

当按下某个键时,我需要停止/恢复风扇的旋转,所以我写了这个C#代码:

public bool rotationFlag = false;

void Update()
{
   if(rotationFlag)
   {
      fan.transform.Rotate(Vector3.up, rotationAngle);
   }
}

public void commuteFan()
{
        rotationFlag = !rotationFlag;
}
按下按钮时会调用

cummuteFan()方法。

变量从false开始,并且风扇正确地没有变形,当我按下按钮时,方法被调用,变量值改变并开始旋转,但是如果我想要停止它,它不会再也不工作了。 debug告诉我,commuteFan()中的值已正确更改为false,但update()继续读取旧值(true),并且粉丝不会停止。

2 个答案:

答案 0 :(得分:0)

[已解决]我不知道为什么,但我创建了一个只有bool以及getter / setter方法的类,并且知道了

答案 1 :(得分:0)

所以你的变量为public,这意味着项目的任何其他部分都可以轻松编辑它。在您的情况下,您通过编辑器更改它。

为避免将来出现此类问题,请尝试使用保护措施。

public class Test : MonoBehaviour
{
    private bool isRotating = false;

    public void setIsRotating(bool status)
    {
        isRotating = status;
    }

    public bool getIsRotating()
    {
        return isRotating;
    }
}

这样的编码将为您节省很多麻烦。