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

时间:2016-05-31 03:33:50

标签: c# unity3d 2d collision

我正在开发一个非常小的Unity 5.4项目,我有几个" pellets"在游戏世界中,它附有一个刚体2D和2D多边形对撞机。然后我还有一个球,它有一个刚体2D,多边形Colider和一个物理材料,允许球反弹到其他物体。

以下代码附加到球上的脚本会做什么......任何事情,当它击中绿色颗粒但没有任何反应。我实际上并不希望它退出应用程序,这仅仅是为了示例目的。

以下是两个对象的属性:

enter image description here

java

1 个答案:

答案 0 :(得分:0)

Application.Quit();在编辑器中不起作用。它用于独立构建。将其替换为UnityEditor.EditorApplication.isPlaying = false;

现在,如果您希望它在Editor和Standalone Build中都有效:

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

即可