在 Unity 中设置玩家从 A 点到 B 点的旋转



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

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);
}

最新更新