2016-05-17 8 views
0

スクリプト内のメソッドTrippleBallが0を返したときにシーンが切り替わるようにしようとしています。テストしたので、適切な時刻に0を返します。ここでは、シーンの切り替えに私のコードは次のとおりです。ユニティでトリガーがアクティブにならない

void OnTriggerEnter(Collider col) 
{ 
    if (col.gameObject.tag == "ball") 
    { 
     col.gameObject.GetComponent<Ball>().setIsOffScreen(true); 
     /*error*/ if (GameObject.Find("TrippleBalls").GetComponent<TripleBall>().getBallCount() == 0) { 

      Debug.Log("Loading next screen..."); 
      SceneManager.LoadScene("GameOverScene"); 
     } 

    } 

} 

ここTrippleBallsスクリプトTrippleBallはここでコンポーネントにTrippleBalls

ある

enter image description here

ある場所を示すための画像である画像をしています上記のコードがどこにあるかを示します。

enter image description here

上記のコードは、私が得る(上記の条件を満足する)LBackBoardに置かれていると呼ばれるクラスにあるとRBackBoard

Iコードをテストする場合、及びgetBallCount戻り0次のエラー:

Object reference not set to an instance of an object

このエラーラインは、私はをマークした場所に私を送ります上記のコードの3210。

誰かが私にこれを理解させる助けがあれば、それはすばらしいでしょう。ありがとうございました!

答えて

3

ゲームオブジェクトの名前はTrippleBallですが、シーン内ではTrippleBallsを探しています。 GameObject.Find("TrippleBalls")GameObject.Find("TrippleBall");に変更するだけです。

また、OnTrigger関数でGameObject.Findを使用しないでください。それはあなたのゲームを遅くするでしょう。トリプルボールをローカル変数に入れて、それを再利用することができます。

TripleBall myTripleBall = null; 

void Strt(){ 
//Cache TripleBall 
myTripleBall = GameObject.Find("TrippleBalls").GetComponent<TripleBall>() 
} 

これでいつでも再利用できます。

void OnTriggerEnter(Collider col) 
{ 
    if (col.gameObject.tag == "ball") 
    { 
     Debug.Log("COUNT IS: "+myTripleBall.getBallCount()); 
     col.gameObject.GetComponent<Ball>().setIsOffScreen(true); 
     if (myTripleBall.getBallCount() == 0) { 

      Debug.Log("Loading next screen..."); 
      SceneManager.LoadScene("GameOverScene"); 
     } 
    } 
} 

は、あなたのビルド設定でGameOverSceneシーンを追加することを確認します。 enter image description here

アドバイス:あなたのための アドバイスがある他のゲームオブジェクト、使用「/」内の他のゲームオブジェクトを探していたときにフォルダパスの場合と同様います。たとえば、TrippleBallはSpecialties GameObjectの下にあります。したがって、GameObject.Find("TrippleBall");の代わりにGameObject.Find("Specialties/TrippleBall");を使用してください。

+0

エラーは消えていますが、まだシーンを印刷または変更できませんでした。 – Luke

+0

@ルークGameOverSceneシーンをビルド設定に追加してください。 – Programmer

+0

私はこれをすべて行いましたが、それでも動作しませんでした。私は次のシーンをロードするだけでテストしてもうまくいきました。 – Luke

関連する問題