Unity版本
2017.4.4f1
基本思路
物体向前发射一个射线,检测到碰撞后,根据碰撞信息选择新的方向。最终结果如下。
具体实现步骤代码
1.物体添加胶囊体碰撞组件CapsuleCollider
通过发射虚拟胶囊体来检测碰撞api
bool Physics.CapsuleCast (Vector3 point1, Vector3 point2, float radius, Vector3 direction, out RaycastHit hit, float maxDistance)
points参数如图所示,radius是Capsule的radius,direction为当前面向,hit为碰撞信息,maxDistance为检测距离:
根据参数申请一下变量并初始化:
//检测距离
float distance = 1;
//物体速度
public float speed = 1;
//物体下一帧面向
Vector3 nexForward;
//capsule端点
Vector3 point1, point2;
//capsule组件
public CapsuleCollider