我有敌人的AI和巡逻点,当他到达一个点,他开始转向下一个点,并向它移动。所以它转向太慢,如何加快这个转向?我用transform.lookAt(),但它立即旋转。
[SerializeField] private NavMeshAgent _agent;
[SerializeField] private List<Transform> _targets;
private float _patrolDistance;
private int index;
private void FixedUpdate()
{
_patrolDistance = Vector3.Distance(_agent.transform.position, _agent.pathEndPosition);
if (_patrolDistance < 0.1f)
{
RandomTarget();
transform.LookAt(_targets[index]);
}
MovePatrolPoint();
}
private void RandomTarget()
{
index = Random.Range(0, _targets.Count);
}
private void MovePatrolPoint()
{
_agent.SetDestination(_targets[index].position);
}
}
2条答案
按热度按时间z8dt9xmd1#
您可以使用
Quaternion.Slerp
和Quaternion.LookRotation
等替代方法来实现更平滑的旋转bjp0bcyl2#
我会用一个slerp来做这样的事情,用一个变量乘以delta时间来控制速度。