Unity3D之物理射线_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Unity3D之物理射线

Unity3D之物理射线

 2017/11/30 23:04:35  小玉龙  程序员俱乐部  我要评论(0)
  • 摘要:射线:从一个点往一个方向,发射一根无限长的射线,这根射线会与场景中带有Collider组件的物体发生碰撞。射线的使用:1publicclassTest2{3privatevoidStart()4{5if(Input.GetMouseButtonDown(0))6{7//从主摄像机发射一条射线至鼠标点击的位置。8Rayray1=Camera.main.ScreenPointToRay(Input.mousePosition);9//从自己的位置,向世界坐标轴的forward方向发射一条射线
  • 标签:

射线:从一个点往一个方向,发射一根无限长的射线,这根射线会与场景中带有 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:颜色。

上一篇: iOS 面试题汇总 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名