C# 设置玩家从A点到B点的统一旋转

C# 设置玩家从A点到B点的统一旋转,c#,unity3d,C#,Unity3d,移动播放器时,我使用此代码进行播放器旋转。球员应始终旋转到他将移动到的目标点 private void SetPlayerRotation(Vector3 targetCellPosition) { Vector3 targetPoint = new Vector3(targetCellPosition.x, transform.position.y, targetCellPosition.z) - transform.position; transform.rotation

移动播放器时,我使用此代码进行播放器旋转。球员应始终旋转到他将移动到的目标点

private void SetPlayerRotation(Vector3 targetCellPosition)
{
    Vector3 targetPoint = new Vector3(targetCellPosition.x, transform.position.y, targetCellPosition.z) - transform.position;

    transform.rotation = Quaternion.LookRotation(targetPoint, Vector3.up); // rotate the player
}
有时控制台会记录日志

看旋转查看向量为零


如何修复此问题?

如果向量为零,将记录此问题,生成if语句将修复此问题。记录这种情况的原因是,当旋转向量为0时,不会发生任何情况,因此执行此任务毫无意义

if (targetPoint != Vector3.Zero) {
    transform.rotation = Quaternion.LookRotation(targetPoint, Vector3.up);
}

如果向量为零,则会记录它,生成if语句将修复此问题。记录这种情况的原因是,当旋转向量为0时,不会发生任何情况,因此执行此任务毫无意义

if (targetPoint != Vector3.Zero) {
    transform.rotation = Quaternion.LookRotation(targetPoint, Vector3.up);
}