• [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信息:

  • 相关阅读:
    Hibernate使用笔记
    svn树冲突的解决方法
    SVN 清理失败的解决方法
    类的实现
    lua元表
    lua中table的常用方法
    C/C++作用域运算符::
    Cocos2d-x Lua 学习
    Lua学习
    吾 三十而望
  • 原文地址:https://www.cnblogs.com/xiuj/p/5936240.html
Copyright © 2020-2023  润新知