变量未在其他脚本上更新

时间:2019-03-06 12:44:37

标签: c# user-interface unity3d

所以这与我问的另一个问题是一致的,但我选择了不同的路线。我的问题是在此脚本中,我正在从LevelManager脚本中找到播放器的级别。我将为每个玩家等级使用不同的面板,并随着等级的提高而激活它们。这不是我了解的最好方法。我遇到的问题是此脚本中的级别未随其他脚本中的currentLevel更新,因此面板始终处于0状态,因此面板无法打开。感谢您的帮助。尼尔

public GameObject Panel1;
public GameObject Panel2;
public GameObject Panel3;
public GameObject levelscript;
public int level;

public void Start()
{
    GameObject scoreEventTrigger = GameObject.Find("ScoreEventTrigger");
    LevelManager levelManager = scoreEventTrigger.GetComponent<LevelManager>();
    level = levelManager.currentLevel;
}

public void OpenPanel1()
{
    if (level == 1)
    {
        if (Panel1 != null)
        {
            Panel1.SetActive(true);
        }
    }
}
public void OpenPanel2()
{
    if (level == 2)
    {
        if (Panel2 != null)
        {
            Panel2.SetActive(true);
        }
    }
}

}

1 个答案:

答案 0 :(得分:1)

仅在开始时加载脚本。 触发某些事件(例如“ onGetXp”)时,您需要检查您的关卡得分。在这种情况下,您需要检查级别并应用面板。