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点的方向.
也就是说,终点减去起点,可以获取到一个从起点到终点的方向.