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