[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