C# 变量未在其他脚本上更新

C# 变量未在其他脚本上更新,c#,user-interface,unity3d,C#,User Interface,Unity3d,这和我问的另一个问题是一致的,但我走的是另一条路。我的问题是,在这个脚本中,我从LevelManager脚本中找到了玩家的级别。我将为每个玩家级别使用不同的面板,并随着级别的增加使其处于活动状态。这不是我理解的最好的方式。我遇到的问题是,此脚本中的级别未使用其他脚本中的currentLevel更新,因此面板未打开,因为级别始终为0。感谢您的帮助。尼尔 public GameObject Panel1; public GameObject Panel2; public GameObject Pan

这和我问的另一个问题是一致的,但我走的是另一条路。我的问题是,在这个脚本中,我从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;
公共游戏对象面板2;
公共游戏对象面板3;
公共游戏对象级脚本;
公共智力水平;
公开作废开始()
{
GameObject scoreEventTrigger=GameObject.Find(“scoreEventTrigger”);
LevelManager LevelManager=scoreEventTrigger.GetComponent();
级别=levelManager.currentLevel;
}
公开作废OpenPanel1()
{
如果(级别==1)
{
如果(Panel1!=null)
{
面板1.设置激活(真);
}
}
}
公开作废OpenPanel2()
{
如果(级别==2)
{
如果(Panel2!=null)
{
面板2.设置激活(真);
}
}
}

}

仅在开始时加载脚本。
当您触发某些事件时,您需要检查levelscore,例如“onGetXp”。在这次活动中,您可以检查您的级别并应用面板。

我觉得这没问题。您确定在
LevelManager
中正确调整了
currentLevel
?感谢您回复@AliKanat。是的,比分在比赛中调整得很好。只是不在该脚本所附加的按钮上。谢谢。这是有道理的。你能给我举个例子吗?我尝试创建一个新函数,并在更新函数中进行了尝试。提前感谢您的帮助@Joreldraw举个好例子,我需要更多地了解您的xp或评分系统和Levelmanager。但最简单的方法是在每次获得xp或分数时检查自己的水平,而不仅仅是在开始时。如果不是的话,你在乞讨时只检查一次你的等级。点击按钮的方法在这里有效吗?因为我在ontriggerenter事件中递增xp,然后当currentxp>=neededxp时,我调用LevelUp函数。那么,我可以在上面的脚本中创建一个函数,调用start方法中的所有内容,而不是在button onclick事件中调用它,然后在inspector中分配它吗?这样行吗?或者你还需要知道哪些其他信息?再次感谢您的帮助@joreldraw如果是增加xp的唯一方法,则会起作用,但请输入您为xp所做的一切,并最后调用levelup函数进行检查。您可以提供一个示例,还是需要更多信息?ontriggerenter函数是玩家获得xp的唯一方法@乔雷德劳