Unity射线

作者: 喜欢海苔Girl | 来源:发表于2020-07-16 22:15 被阅读0次

    射线

    与现实中激光手电(激光笔)类似,射线的两个要素:原点和方向。unity引擎引入了这种机制,可以通过代码在场景中某个点,朝着某个方向生成一条虚拟的射线,当射线打到碰撞器上时,就表示射线碰撞到了物体,否则射线没有碰撞到物体。

    创建射线

    引擎中使用射线的类Ray来创建一条射线,创建射线时需要知道射线的原点和方向,以下是创建射线的方式
    1.第一种

      Ray ray = new Ray();
      ray.origin = Vector3.zero;
      ray.direction = Vector3.forward;
    

    2.第二种

      Ray ray = new Ray(Vector3.zero,Vector3.forward);
    

    发射射线

    要实现射线碰撞的应用,必须使用Physics类的方法Raycast方法发射射线来实现射线碰撞检测

      static bool RayCast(Ray ray,out RayCastHit hitInfo)
    

    方法说明
    (1)如果射线打到碰撞器,则返回true否则返回false;
    (2)hitInfo是一个结构体类型,包含成员如下

    image.png
    其中最常用的两个属性如下:
    • point指的是射线打到碰撞器上的碰撞点 Vector3类型
    • collider指的是射线碰撞到的碰撞器组件

    相关文章

      网友评论

        本文标题:Unity射线

        本文链接:https://www.haomeiwen.com/subject/mlxvhktx.html