2016-09-23 3 views
0

私は、スクリプトを追加して入れて、私はこのゲームbreakout-gameとNullReferenceExceptionファイヤーボール

に取り組んでいると私はボールの火を作り、壁バウンスと衝突し、私は彼が言ったことを行うにしようとしていますこのコード:

public class BallMove : MonoBehaviour { 


private Rigidbody rb; 
public float ballVelocity = 800f; 

private bool isMove; 
// Use this for initialization 
void awake() { 
    rb = GetComponent<Rigidbody>(); 
} 

// Update is called once per frame 
void Update() { 

    if (Input.GetButtonDown ("Fire1") && isMove == false) { 
     transform.parent = null; 
     isMove = true; 
     rb.isKinematic = false; 
     rb.AddForce (new Vector3(ballVelocity,ballVelocity,0)); 
    } 
} 

}

私はこのコードのすべての行を理解するが、私はこれを再生しようとすると、私はとNullReferenceExceptionを得たが、私はゲームを実行することができますが、私は、私は、キーを押したときエラーが発生した、誰かがなぜ知っている?何が起こるのですか?

答えて

2

Awake()ではなく、awake()を使用してください。あなたのケースでは、Unityエンジンで使用されている「公式の」関数ではなく、「カスタマイズされた」関数を使用しています。

したがって、エンジンはそれ自身でその機能を開始することはできません。rbは、Update()で使用されてもnullのままです。

例:素敵なキャッチ:

void Awake() { 
    rb = GetComponent<Rigidbody>(); 
} 
+1

2秒で私にビート、これはゲームオブジェクトも剛体が –

+1

@ParadoxForgeを添付していることを考えると、答えです!はい、それはユニティを学ぶことを試みる人々の典型的な間違いです。大文字と小文字の区別は無視されます:-) –