Unity - 让对象随着时间的推移旋转回零

问题描述 投票:0回答:1

在协程中,我设置刚体的速度以跟随触摸屏位置:

rb.velocity = direction * touchDragPhysicsSpeed;

但我也希望它的旋转趋势回到零度。我怎样才能做到这一点?

AI 不断告诉我做这样的事情:

Quaternion targetRotation = Quaternion.Euler(Vector3.zero);
rb.MoveRotation(Quaternion.Slerp(rb.rotation, targetRotation, rotationCorrectionSpeed));

但是 MoveRotation 行给出了错误:

Argument 1: cannot convert from 'float' to 'UnityEngine.Quaternion'

这是正确的做法吗?如果是这样,我该如何修复该错误?或者有更好的办法吗?

unity-game-engine game-physics
1个回答
0
投票

根据 Unity - Quaternion.Euler 的脚本 API 文档,您无法将

Vector3.zero
作为参数传递,因为需要浮点数而不是四元数,在本例中为
Vector3.zero
。单独传递值而不是
Vector3.zero

Quaternion targetRotation = Quaternion.Euler(0, 0, 0);
© www.soinside.com 2019 - 2024. All rights reserved.