2017-05-21 15 views
0

現在、YouTubeでc#スクリプトを使用してUnityで迷路ゲームを作成する方法に関するチュートリアルに従っています。チュートリアルの一部では、アップローダーは "GameManager"スクリプトの機能を使用して、それを "PlayerMovement"スクリプトで呼び出しています。ビデオではすべて正常に動作しますが、実装しようとすると、保護レベルのため "CS0122 'GameManager.CompleteLevel()'にアクセスできません。保護レベルのためにc#が機能しません

ここに私の問題を視覚化するためのコードスニペットがいくつかあります:

"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); 
    } 
} 

すべてのヘルプは大歓迎です:)

+0

。 CompleteLevel(); –

答えて

0

あなたはそれがプライベートで修飾せずに公共修飾子

public void CompleteLevel() 

でメソッドをマークshoul(クラスで使用するためにのみ)

エラーはGameManagerを呼び出すようにしようとしているPlayerMovement側で起こっている
+0

これはCS0122のエラーを取り除いていただきありがとうございます。 私は別のエラーでヒットしましたが、パブリックstatic voidに変更するとそのように見えました –

+0

@TylerStMartin静的メソッドとオブジェクト/メンバーメソッドが何であるかを理解する必要があると思います。この理解を得ることは重要です。そうしないと、後でさまざまなプログラムフローの問題に遭遇します。 – Farhan

関連する問題