[Unity3d]游戲中子彈碰撞的處理


  • 如果使用Collider+Rigidbody的方式來處理,則它是每一幀進行判定碰撞;如果子彈過快導致碰撞發生在2幀之間,則會導致無法捕獲這個碰撞效果

  • 基於上述原因,我們要使用射線Raycast進行子彈的處理,並且可以通過Layer來進行過濾

    Physics.Raycast(transform.position, -Vector3.up, out hit, speed * Time.deltaTime,LayerMask)
    

    Raycast是會和第一個碰撞的物體發生作用,而RaycastAll則會和指定方向的所有物體都有作用

  • 在子彈對象中聲明一個public LayerMask lm;對象,選擇要發生碰撞的layer信息:

  • 在碰撞的物體對象中,修改相應的layer信息:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM