Unity 使物体沿其移动的轴旋转
Untiy Make an object rotate along axis its moving on
我想制作一个物体(假设是一个立方体),在其移动的同一轴上以稳定的速度旋转。因此,如果它从 X 到 Z 改变方向,那么旋转将从 X 轴进入 Z 轴,然后继续在 Z 轴上旋转。
我该如何实现?这是我目前的情况,立方体只是在一定角度内在z轴上来回旋转。
public float Angle;
public float Period;
void Update()
{
Animate();
}
void Animate()
{
_time = _time + Time.deltaTime;
float phase = Mathf.Sin(_time / Period);
transform.localRotation = Quaternion.Euler(new Vector3(0f, 0f, phase * Angle));
}
只需使用
RotateAround
注意通常不要出于任何原因使用四元数。
有 1000 多个关于使用 RotateAround 的问题,所以 google。在你的情况下,听起来你会改变(倾斜,无论如何)旋转轴本身。
我想制作一个物体(假设是一个立方体),在其移动的同一轴上以稳定的速度旋转。因此,如果它从 X 到 Z 改变方向,那么旋转将从 X 轴进入 Z 轴,然后继续在 Z 轴上旋转。
我该如何实现?这是我目前的情况,立方体只是在一定角度内在z轴上来回旋转。
public float Angle;
public float Period;
void Update()
{
Animate();
}
void Animate()
{
_time = _time + Time.deltaTime;
float phase = Mathf.Sin(_time / Period);
transform.localRotation = Quaternion.Euler(new Vector3(0f, 0f, phase * Angle));
}
只需使用
RotateAround
注意通常不要出于任何原因使用四元数。
有 1000 多个关于使用 RotateAround 的问题,所以 google。在你的情况下,听起来你会改变(倾斜,无论如何)旋转轴本身。