[英]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.