在“Project”面板中單擊“Create”旁邊的小三角,選擇“javascript”創建一個名為“collision”的js文件。雙擊它,系統啟動Monodevelop來編輯js文件。
清除裡面默認創建的代碼。寫上。
function OnCollisionEnter(obj:Collision)
{
Debug.Log(obj.gameObject.name);
}
onCollisionEnter函數解釋:這個函數是在被綁定的物體與其他物體發生碰撞的時候被調用。
obj參數解釋:被撞的物體參數,類型是Collision,在本例中就是“地板”.攜帶變量gameObject,是我們碰撞的物體name,就是我們為地板設置的name。
將腳本文件拖到球上實現綁定:
這步很容易操作,在"Project"面板中選中collision腳本,按住鼠標左鍵不放,直接拖入“Hierarchie”面板中,放到立方體上,松開鼠標即完成綁定。
點頂部的小三角運行程序:
程序運行結果,當球與地板碰撞時,unity3d底部狀態欄會輸出地板的name
搞定。
OnControllerColliderHit(),這個是用於角色碰撞的,物體如果附加了Charactor Controller(Unity自帶的用於角色控制的腳本)則使用這個函數檢測碰撞,這是不需要加剛體的。一般的剛體之間碰撞使用OnCollisionEnter(),范圍觸發用OnTriggerEnter(),如果你是讓兩個CUBE碰撞,請確保其中一個附加了RigidBody,
collision是個變量,通過它可以獲得你所碰撞的目標的屬性以及碰撞點信息和相對速度,如:collision.collider.某個組件或腳本。 void OnCollisionEnter(Collision collision){if(collision.collider.tag=="enemy")//tag是物體的標簽,相當於物體的類別名稱。在每一個物體的組件欄(也就是加腳本的那個區域)的最上面可以找到,默認的是UnTagged,也就是沒有標簽,你找找,然後點擊會出現一個下拉列表,默認的已有幾個Tag,你也可以加自定義的,點擊下拉列表最下方的Add Tag就可以加Tag,最後選擇一個Tag作為物體的名稱就可以了。{Destroy(collision.collider.gameObject);//如果檢測到對方是敵人,則消滅對方。}}