對這文章發表回應
發表限制: 非會員 可以發表
[Unity3D]在Unity3D中實現簡單的碰撞檢測
需求:當立方體Cube碰到地面Plane的時候,輸出碰撞物體的名稱,則表述檢測到立方體碰撞了地面。
過程:
1.搭建一個簡單的場景。
在新的工程中選擇File->new Scene創建新的場景。
然後在該場景中添加地板: GameObject->Create Other->Plain,
以及正方體:GameObject->Create Other->Cube。
給正方體添加剛體:Component->Physics->Rigidbody。
添加後可以設置剛體屬性。
在Project處右擊,選擇Import Package->Physic Matarials。
引入完成後可以直接把材質拖動到Hierachy窗口的組件中。
bouncy:彈力十足的蹦蹦跳跳型。
ice:像冰塊一樣碰撞。
metal:像金屬一樣碰撞。
rubber:像橡膠一樣碰撞。
wood:像木頭一樣碰撞。
然後在「Hierarchie」面板中單擊表示地板的組件,然後在Inspector中給它命名為「 Ground」
然後調整他們的位置大約像這樣:
2.創建腳本文件添加監聽。
選擇Assets->Create->Javascript,創建JS文件並且重命名為 「Collision」。
在Project窗口中雙擊它,Unity會啟動Monodevelop來編輯js文件。
清除裡面默認創建的代碼。寫上。
function OnCollisionEnter(obj:Collision)
{
Debug.Log("Collider:"+obj.collider.name+" gameObject:"+obj.gameObject.name);
}
onCollisionEnter函數解釋:這個函數是在被綁定的物體與其他物體發生碰撞的時候被調用。
obj參數解釋:被撞的物體參數,類型是Collision,在本例中就是「Ground」。
攜帶變量gameObject,是我們碰撞的物體。
3、將腳本文件拖到立方體上實現綁定
在"Project"面板中選中collision.js腳本,按住鼠標左鍵不放,直接拖入「Hierarchie」面板中,放到Ground上,鬆開鼠標即完成綁定。可以在右邊的Inspetor面板查看相關內容。

現在可以運行該程式了。
運行後在界面左下角會輸出:
Collider:Cube gameObject:Cube
至此一個簡單的碰撞檢測便完成了。
原文出處: [Unity3D]在Unity3D中实现简单的碰撞检测 - 汪海的实验室 - 博客频道 - CSDN.NET