由于保护级别,c# 函数无法访问

c# function inaccessible due to protection level

我目前正在关注 YouTube 上关于如何使用 C# 脚本在 Unity 中制作迷宫游戏的教程。在部分教程中,上传者正在使用 "GameManager" 脚本中的函数并在 "PlayerMovement" 脚本中调用它。在视频中一切正常,但是当我尝试实现它时,它给了我 "CS0122 'GameManager.CompleteLevel()' is inaccessible due to its protection level"

这里有一些代码片段可以帮助可视化我的问题:

"PlayerMovement"

void OnTriggerEnter(Collider other)
{
    if (other.transform.tag == "Goal")
        GameManager.CompleteLevel();
}

"GameManager"

public class GameManager : MonoBehaviour {
    public static int currentScore;
    public static int highScore;

    public static int currentLevel =0;
    public static int unlockedLevel;

    void CompleteLevel()
    {
        currentLevel++;
        SceneManager.LoadScene(currentLevel);
    }
}

非常感谢任何帮助:)

你应该用 public 修饰符标记一个方法

public void CompleteLevel()

没有修饰符是私有的(仅用于 class)