Unity3d 碰撞檢測

2021-06-20 15:41:59 字數 1090 閱讀 4077

unity3d 主要由trigger和collison 兩種碰撞檢測:

(1)檢測trigger:雙方都有collider。雙方至少有乙個rigidbody(任意一方都可以),有乙個trigger(任意一方都可以).

若只有乙個rigidbody,則碰撞時,該rigidbody一定要是運動的。

碰撞後發出的ontriggerenter,ontriggerstay,ontriggerexit都可以在雙方所附加的指令碼上接收。其中的引數collider other是碰撞的另一方的collider

常用方法如下:

ontriggerenter 進入時

ontriggerexit 離開時

ontriggerstay 處於時

今天跟這教程做合金彈頭,注意到當主角遭受敵人近身刺殺攻擊時使用

ontriggerstay 方法,當遭受敵人子彈或炮彈攻擊時,採用ontriggerenter 方法:

近身刺殺:

void ontriggerstay(collider other)

}遠端炮彈:

void ontriggerenter(collider other)

if (other.tag == "gift2")                                 //合金彈頭中醫療包

//合金彈頭中各種敵人發出的炸彈

if (other.tag == "bombexplosion")

else if (other.tag == "jetexplosion")

else if (other.tag == "tankfire")

}(2)

檢測collision:雙方都沒有trigger。雙方至少有乙個非kinematic的rigidbody。

若只有乙個rigidbody,則碰撞時,該rigidbody一定要是運動的。

碰撞後發出的oncollisionenter,oncollisionstay,oncollisionexit都可以在雙方所附加的指令碼上接收。其中的引數collision collision的各個屬性collider,gameobject,rigidbody(若無則為null),transform,均為碰撞另一方的屬性。

unity3d碰撞檢測

具體的一些,可以看 unity3d的 manual refrernce的東西,有幾個 在後面可以參考 幾個型別碰撞器 1.靜態碰撞器 就是只有碰撞器,但沒有剛體的 2.剛體碰撞器 帶rigidbody的碰撞器,這個是最基本的碰撞器 3.運動學剛體碰撞器 帶rigidbody,而且rigidbody的...

Unity 3D碰撞檢測

被呼叫的函式 碰撞器與觸發器 被呼叫的函式 以上兩個碰撞不能將各自的函式或引數改變,否則將出現以下錯誤 在unity3d中節點加入某某collider 2d元件則這個節點就是碰撞器 碰撞器分類 1.box collider 2d 矩形碰撞器 2.circle collider 2d 圓形碰撞器 3....

Unity3D碰撞檢測的方法

1.需要在碰撞物體上加collider,如果將collider的istrigger打上勾的話就可以使用如下方法 private void ontriggerenter collider other 檢測函式,並將檢測的結果放入other變數中.離開碰撞區域的函式如下 private void ont...