1.物理射线简介
1.何为物理射线?
从一个点往一个方向,发射一根无限长的射线,这根射线与场景中的其余 的游戏物体的碰撞体组件相碰撞,射线即结束.
由于射线可以与游戏组件Collider相交互,所以"射线"也称之为"物理射 线".
2.物理射线的应用范围
超人的激光眼,X战警镭射眼.
2.物理射线相关方法
1.通过摄像机创建射线
Camera.main
代表tag设置为"MainCamera"的摄像机的Camera组件的引用.
m_Camera.ScreenPointToRay(Vector3)
摄像机组件(对象)下的一个方法.
屏幕点转化为射线,这个方法会返回一个Ray类型的射线.
这个屏幕点通常写鼠标的点击位置,这样的话,就代表从摄像机的位置开 始,往鼠标点击点这个方向,发射一根射线.
Input.mousePosition: 鼠标所在的位置值.
Ray: 射线,一个结构体.
代码完整格式:
ray = Camera.main.ScreenpointToRay(Input.mousePosition);
2.检测射线与其他物体的碰撞
RaycastHit:一个结构体,用于存储射线的碰撞信息.
Physics.Raycast(Ray,out RaycastHit)
物理类下面有一个静态方法叫做Raycast(),射线检测.
这个方法有16个重载方式,我们现在使用第3种重载方式.
第三种重载:检测这根射线.如果射线与场景中的物体碰撞了,返回值为 真,并且将碰撞信息存储到RaycastHit类型的变量中.
物理射线使用步骤:
第一步:创建一根射线.
第二步:检测这根射线与其他物体的碰撞,得到碰撞信息.
第三步:通过碰撞信息对碰撞到的物体进行处理.
RaycastHit.point:获取射线碰撞点.
Vector3 向量计算方向:
向量A-向量B=一个从B点到A点的方向.
也就是说,终点减去起点,可以获取到一个从起点到终点的方向.