很简单的一个小技巧,先在LateUpdate()定义移动函数,然后再算出来目标位置与当前位置的差值,做差值运算,代码如下:
//平滑移动
var _target = _targetPos;//_targetPos是目标点坐标
var _fxDis = 0.3f;
if (Vector3.Distance(transform.position, _target) <= _fxDis)
{
transform.position = _target;
}
else
{
var _nor = _fxDis * (_target - transform.position).normalized;
transform.position += _nor;
}