-
如果使用Collider+Rigidbody的方式來處理,則它是每一幀進行判定碰撞;如果子彈過快導致碰撞發生在2幀之間,則會導致無法捕獲這個碰撞效果
-
基於上述原因,我們要使用射線
Raycast
進行子彈的處理,並且可以通過Layer來進行過濾Physics.Raycast(transform.position, -Vector3.up, out hit, speed * Time.deltaTime,LayerMask)
Raycast是會和第一個碰撞的物體發生作用,而RaycastAll則會和指定方向的所有物體都有作用
-
在子彈對象中聲明一個
public LayerMask lm;
對象,選擇要發生碰撞的layer信息:
-
在碰撞的物體對象中,修改相應的layer信息: