因此,我正在制作Tamagotchi宠物游戏,并且在统计信息中,“无效更新()”中的行似乎只更新_Happiness中的统计信息第一行,而不是_hunger中的第一行。有什么原因可能会发生这种情况?相对于统计信息,我的原型中还存在另一个脚本。
public GameObject happinessText;
public GameObject hungerText;
public GameObject robot;
// Update is called once per frame
void Update()
{
happinessText.GetComponent<Text>().text = "" + robot.GetComponent<Robot>().happiness;
hungerText.GetComponent<Text>().text = "" + robot.GetComponent<Robot>().hunger;
//happinessText.GetComponent<Text>().text = "" + robot.GetComponent<Robot>().happiness;
}
其他脚本:
public int _hunger;
public int _happiness;
void Start()
{
PlayerPrefs.SetString("then", "05/06/2016 11:20:12");
updateStatus();
}
void updateStatus()
{
if (!PlayerPrefs.HasKey("_hunger"))
{
_hunger = 100;
PlayerPrefs.SetInt("_hunger", _hunger);
} else {
_hunger = PlayerPrefs.GetInt("_hunger");
}
if (!PlayerPrefs.HasKey("_happiness"))
{
_happiness = 100;
PlayerPrefs.SetInt("_happiness", _happiness);
} else {
_happiness = PlayerPrefs.GetInt("_happiness");
}
if (!PlayerPrefs.HasKey("then")) //{
PlayerPrefs.SetString("then", getStringTime());
TimeSpan ts = GetTimeSpan();
_hunger -= (int)(ts.TotalHours * 2);
if (_hunger < 0)
_hunger = 0;
_happiness -= (int)((100 - _hunger) * ts.TotalHours / 5);
if (_happiness < 0)
_happiness = 0;
}
public int hunger
{
[OnSerialized]
get { return _hunger; }
set { _hunger = value; }
}
public int happiness
{
[OnSerialized]
get { return _happiness; }
set { _happiness = value; }
}
答案 0 :(得分:0)
在其他脚本的updateStatus
方法中,似乎Start
方法仅被调用了一次。
在查看脚本时,您似乎可能缺少Update()
函数:
void Update()
{
updateStatus();
}
我还将在更新_hunger
和_happiness
的代码中添加一些断点。或者,如果您愿意,可以在这里拨打几个Debug.Log(...)
电话。重要的是要确认值是否定期更新。