我有一个简单的项目,在场景中有一个按钮,当点击时,在这个脚本中启动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);
}
}
当跑步并点击按钮时,控制台会说:
0
冉!
1
而非预期:
5
冉!
6
知道变量为什么不保持它在类中设置初始值?
感谢。
答案 0 :(得分:4)
当变量是公共的时,脚本上的值无关紧要。您可能在Inspector中将其设置为0,这是运行时使用的值。如果要使用脚本的值,则需要单击组件设置轮和重置组件。
如果您必须查看该值但想要使用脚本值,请将其设为私有,然后单击检查器顶部锁定旁边的小向下箭头。这也将显示私人会员。你无法通过检查员改变它们,只需看看。
答案 1 :(得分:3)
Cash
变量是公开的,我认为您更改了Cash
中inspector
的值。
在检查器中更改变量的值后,unity将忽略代码中的初始值,并将其替换为检查器中的值。
尝试将public int Cash = 5;
更改为private int Cash = 5;
,您将获得所需的结果
答案 2 :(得分:1)
您的脚本是否链接到场景中的对象?如果是这种情况,可以在检查器中编辑“cash”变量并覆盖脚本中的初始化。