2016-05-31 8 views
0

私は非常に小さなUnity 5.4プロジェクトに取り組んでいます。ゲーム世界では、剛体2Dと2Dポリゴンコライダーを取り付けたいくつかの「ペレット」があります。私はまた、剛体2D、ポリゴンコライダー、およびボールが他のオブジェクトにバウンスする物理材料を持つボールを持っています。Unity 3D 5.4 2Dコリジョンは機能しませんか?

次のコードは、ボールが何かをするスクリプトに添付されています...緑色のペレットに当たっても何も起こりません。私は実際にそれが単に目的のためであったアプリケーションを終了しないようにしています。

以下は、両方のオブジェクトのプロパティである:

public class BallBounce : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 
     //activate camera because I am lazy 
     var cam = GameObject.Find ("camera"); 
     var ball = GameObject.Find ("ball"); 
     Rigidbody2D rb = GetComponent<Rigidbody2D>(); 
     cam.SetActive (true); 
        } 

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

    void OnCollisionEnter2D(Collision2D col) 
    { 
     if (col.gameObject.tag == "Bricks") { 
      Application.Quit(); 
     } 

    } 
} 
+0

アプリケーションを使用します。 Quit()はエディタでは機能しません。アプリケーションを終了させるには、ゲームを構築してスタンドアローンとして起動する必要があります。 – Matriac

+0

おかげで。 「 –

+0

無効OnCollisionEnter2D(Collision2DのCOL) \t { \t \t場合(col.gameObject.tag \t == \t:私は試してみて、それが接触するレンガを破壊するためにそれを変更するだけでなく、何もありません: 更新されたコードをレンガ "){ \t \t \t破棄\t(col.gameObject); \t \t} –

答えて

0

Application.Quit();

enter image description hereエディタで動作しません。スタンドアロンビルドに使用されます。あなたが望むなら今UnityEditor.EditorApplication.isPlaying = false;

で、それはエディタとスタンドアロンビルドの両方で動作するようにすることを交換してください:何かが真か偽の場合のテスト時

void Start() 
{ 
    //activate camera because I am lazy 
    var cam = GameObject.Find ("camera"); 
    var ball = GameObject.Find ("ball"); 
    Rigidbody2D rb = GetComponent<Rigidbody2D>(); 
    cam.SetActive (true); 
    Debug.Log("Start Called!"); 
} 

void Update() 
{ 

} 

void OnCollisionEnter2D(Collision2D col) 
{ 
    Debug.Log("Collision detected: "+col.gameObject.name); 
    if (col.gameObject.tag == "Bricks") { 
     #if UNITY_EDITOR 
     UnityEditor.EditorApplication.isPlaying = false; 
     #else 
     Application.Quit(); 
     #endif 
    } 
} 

次回は、単にDebug.Log("It works");

+0

ここで根本的に何かが間違っているように感じます。でもコンソールに足すこと失敗: –

+0

ボイドOnCollisionEnter2D(Collision2DのCOL) \t {\t \t IF(col.gameObject.tag \t == \t "レンガ"){ \t \t \t DEBUG.LOG( "衝突検出します")。 \t \t} \t \t} DEBUG.LOG( "それは作品")を入れていないのはなぜ –

+0

@RaeMichelleRichards。あなたのスタート機能に何かが表示されていないか確認してください – Programmer

関連する問題