zoukankan      html  css  js  c++  java
  • Unity3D之物理射线

    射线:从一个点往一个方向,发射一根无限长的射线,这根射线会与场景中带有 Collider 组件的物体发生碰撞。

    射线的使用:

     1 public class Test
     2 {
     3     private void Start()
     4     {
     5         if (Input.GetMouseButtonDown(0))
     6         {
     7             //从主摄像机发射一条射线至鼠标点击的位置。
     8             Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition);
     9             //从自己的位置,向世界坐标轴的 forward 方向发射一条射线。
    10             Ray ray2 = new Ray(this.transform.position, Vector3.forward);
    11             //声明一个 RaycastHit 类型的变量,存储射线的碰撞信息。
    12             RaycastHit hitInfo;
    13             //检查射线是否碰撞到物体
    14             if (Physics.Raycast(ray1,out hitInfo))
    15             {
    16                 //执行代码
    17             }
    18         }
    19     }
    20 }

    根据上面的代码:

    hitInfo.point:表示碰撞点的坐标。

    Physics.Raycast():使用这个方法检测射线时,因为该方法重载很多,一定要弄清楚自己使用的是哪个重载方法,填对参数,不然很容易出错。

    因为射线是看不见的,我们可以通过画线的方式来模拟射线,方便我们调试,方法如下:

    Debug.DrawRay(Vector3 pos,Vector3 dir,Color c):画线。

    pos:起点坐标。

    dir:方向。

    c:颜色。

  • 相关阅读:
    R 语言
    Maven
    IntelliJ IDEA
    Windows Terminal
    pip
    批处理编程案例
    Windows DOS命令批处理脚本
    Day15 T1 库特的向量
    Day12 T1 少女觉
    Day10 T2 邦德
  • 原文地址:https://www.cnblogs.com/xiaoyulong/p/7932003.html
Copyright © 2011-2022 走看看