unity中如果用navmesh 里面有内置的方法可以获取速度,其他目前发现好像只能自己算了
float Speed()
{
curpos = gameObject.transform.position;//当前点
float _speed = (Vector3.Magnitude(curpos - lastpos) / Time.deltaTime);//与上一个点做计算除去当前帧花的时间。
lastpos = curpos;//把当前点保存下一次用
return _speed;
}
这个方法在一帧只能调用一次,速度拿出来保存。(多次调用时,当前帧pos会覆盖上一帧pos,所以除第一次以外都是0);