2015-11-03 64 views
1

我試圖使用移動的2D對撞機作爲「對象的移除器」,通過銷燬它與之發生碰撞的所有對象,但遇到問題。如何銷燬所有與Unity3D中特定2D相碰撞的2D對象?

+2

嗨,歡迎來到堆棧溢出。請務必包含您迄今嘗試的任何代碼,以便我們更好地瞭解您的方法,並可以更輕鬆地編寫滿足您需求的答案。 – Serlite

+1

一般來說,人們爲具體問題提供答案 - 沒有人喜歡成爲網上某個人的代碼猴。但是,我**可以給你一些提示,讓你開始。對於初學者,我認爲您的任務需要兩個階段:碰撞檢測階段和對象移除階段。你一定會需要創建一個腳本來銷燬對象,所以你想要去除器摧毀其他對象,或者你想讓其他對象檢測與去除器的碰撞,然後自毀?希望能幫助你開始。 – bpgeck

回答

2

OnTriggerEnter的例子in the documentation做你問什麼了:

using UnityEngine; 
using System.Collections; 

public class ExampleClass : MonoBehaviour { 
void OnTriggerEnter(Collider other) { 
    Destroy(other.gameObject); 
    } 
} 

不要忘記檢查對撞機是一個觸發器。該腳本應該附加到將要觸發它的東西上的遊戲對象。

0

我有同樣的問題。我正在製作2D遊戲,因此您可能需要修改我的代碼。您應該將碰撞器上的「觸發器」設置爲false(未選中)並將javascript腳本附加到「對象移除器」並使用下面的代碼。

對於2D:

function OnCollisionEnter2D(coll: Collision2D) { 
     Destroy(coll.gameObject); 
} 

對於3D:

function OnCollisionEnter(coll: Collision) { 
     Destroy(coll.gameObject); 
} 

我不是100%肯定,如果3D代碼將工作。

希望這有助於! :)

完整答案在這裏:https://stackoverflow.com/a/34862535/5792157

+0

@Burga亞歷克斯如果這有幫助,讓我知道!奇怪的是,OnTriggerEnter沒有爲我工作。 – Raid