簡體   English   中英

Unity 3D 5.4 2D碰撞不起作用?

[英]Unity 3D 5.4 2D Collisions Not Working?

我正在做一個很小的Unity 5.4項目,我有幾個“彈丸”,它們在游戲世界中附有2D剛體和2D多邊形對撞機。 然后,我還有一個球,它具有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 ();
        }

    }
}

Application.Quit(); 在編輯器中不起作用。 它用於獨立構建。 將其替換為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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM