射线Ray的使用与判定
Ray:创建射线
Raycast:一旦与其他模型发生碰撞,他将停止发射。
RaycastAll:投射一条光线并返回所有碰撞
我们在Update中创建一个射线ray,从摄像机发射到鼠标点击位置的一个射线。再创建一个射线检测RaycastHit,通过Raycast检测到射线碰撞到的第一个物体。
如果需要“射线穿透”的判断,就需要用到RaycastAll
通过Debug.DrawRay(ray.origin, ray.direction, Color.red);画出一条红色的射线,只有在Scene场景中可见。
有了射线以后我们就可以精确的获取到点击的坐标位置了
鼠标点击创建物体
我们这里实现在Cube正上方创建一个Sphere
通过1<<LayerMask.NameToLayer限定点到的是什么图层,再去创建
鼠标点击移动物体
我们右键设定一个终点,因为hit.point的位置是在平面上,而物体有高度,所以锁定物体y轴。这里以+1为例。
移动我们采用了Lerp插值进行更平滑的移动。
两点之间巡逻
通过交换起点和终点和添加stopTime计时器来实现停止、巡逻、停止的过程
相交球
输出球形范围内的物体名称