由于其存在级别而无法访问'?

时间:2014-07-03 07:51:13

标签: c# unity3d

我尝试使用单身人士来保存他们刚刚获得的球员得分并将其传递给下一个场景,但我收到了错误:Inaccessible due its protection level

public class Score : MonoBehaviour
{
    public static Score instance { get; private set;}
    public int score = 0;

    void Awake()
    {
        InvokeRepeating("increaseScore", 1, 1);
    }

    void Update()
    {
        score++;
        // Set the score text.
        guiText.text = "Score: " + score;
        instance = this;
    }
}

这是在场景1中进行比赛的代码。

public class endScore : MonoBehaviour
{
    void getScore()
    {
        Score.instance.Update();
    }
}

这是我在下一个场景中调用它的地方。

编辑:

public class endScore : MonoBehaviour
{
    void getScore()
    {
        Score.instance.Update();
    guiText.text = "Score: " + score;
    }
}

它确实识别+ score?我以为单身人士从集合实例中抓取了所有变量?

2 个答案:

答案 0 :(得分:0)

您需要将类Update的方法Score更改为public,以便可以通过调用Score的实例

来访问它

将其更改为“公开”以使其更易于访问或可能更好受保护以使其不如公开访问,但超过私有(read more about that here

Public void Update ()
{
    score++;
    // Set the score text.
    guiText.text = "Score: " + score;
    instance = this;
}

答案 1 :(得分:0)

如果您没有意识到这一点,Unity中的Update是每帧{1}}类脚本调用一次的方法。你真的不应该自己打电话了!