为什么我的 Unity C# 脚本中的变量重置为 0

Sim*_*ead 1 c# unity-game-engine

我有一个简单的项目,场景中有一个按钮,当点击该按钮时,会在此脚本中启动 StartWorking 函数:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class DoWork : MonoBehaviour {

  public int Cash = 5;

  public void StartWorking() {
        Debug.Log (Cash);
        Debug.Log ("Ran!");
        Cash++;
        Debug.Log (Cash);
  }
}
Run Code Online (Sandbox Code Playgroud)

当运行并点击按钮时,控制台会说:

0
跑!
1

而不是预期:

5
跑!
6

知道为什么变量没有在类中保持它的初始值吗?

谢谢。

Eve*_*rts 5

当变量是 public 时,脚本上的值无关紧要。您可能在 Inspector 中将其设置为 0,这是运行时使用的值。如果要使用脚本的值,则需要单击组件设置轮和重置组件。

如果您必须查看该值但想使用脚本值,请将其设为私有并单击检查器顶部锁定旁边的小向下箭头。这也将显示私人成员。您将无法通过检查员更改它们,请查看。