由于其防护等级'无法进入
本文关键字:于其防 | 更新日期: 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
类脚本。你真不该自己叫它!