我在Unity中有旋转问题。我正在从文件中读取度数值,我想围绕x,y, and z axes
进行轮换。但是,当我使用此代码时,旋转的度数值会发生变化。资产模块Suited Man正在进行不同的轮换。
target = Quaternion.Euler(x, y, z)
transform.rotation = Quaternion.Slerp(startpos, target, Timer.fracComplete)
我该如何解决这个问题?谢谢。
答案 0 :(得分:2)
您可以使用Quaternion.eulerAngles
获取Quaternion的Vector3表示形式,然后使用Quaternion.Euler
将Vector3转换回Quaternion。
示例:
Vector3 rot = myTransform.rotation.eulerAngles;
rot = new Vector3(rot.x,rot.y+180,rot.z);
myTransform.rotation = Quaternion.Euler(rot);
<强>更新强>
这是我的测试代码,当我按下&#39; D&#39;时,对象在Y轴上旋转。键。
public class BallControl : MonoBehaviour
{
public Transform test;
void Start()
{
}
void Update()
{
if (Input.GetKey(KeyCode.D))
{
Vector3 rot = test.rotation.eulerAngles;
rot = new Vector3(rot.x, rot.y + 1, rot.z);
test.rotation = Quaternion.Euler(rot);
}
}
}