由于其防护等级'无法进入

本文关键字:于其防 | 更新日期: 2023-09-27 18:11:11

我试图使用一个单例来保存玩家的分数,他们刚刚得到并将其传递到下一个场景,但我得到一个错误: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();
    }
}

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

编辑:

<>之前公共类endScore: MonoBehaviour{空白getScore (){Score.instance.Update ();guiText。text = "分数:" +分数;}}之前

它不识别+ score ?我以为单例抓取了集合实例中的所有变量?

由于其防护等级'无法进入

您需要将Score类的Update方法更改为public,以便对象调用Score的实例可以访问它

将其更改为Public以使其更易于访问,或者将其更改为Protected以使其比Public更易于访问,但比private更易于访问(在这里阅读更多关于此的信息)

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

如果你没有意识到这一点,Unity中的Update是一个每帧调用一次的方法,对于每个MonoBehavior类脚本。你真不该自己叫它!

相关文章: