gpt4 book ai didi

unity-game-engine - unity3d 以有限的角度来回旋转

转载 作者:行者123 更新时间:2023-12-02 21:28:05 25 4
gpt4 key购买 nike

我想在一段时间内将对象在轴上旋转特定角度。一旦达到极限(比方说 5 度),就在相反方向重复该操作。

我可以使用 Quaternion.Euler() 向 5 度旋转,但如何检查它是否已达到 5 度并开始将方向反转到 -5 度?

所以在 Update() 中我这样做:

int dir = 1; // somewhere global

Quaternion r = Quaternion.Euler(0, Timer.deltaTime * dir, 0);

transform.rotation *= r;

// I want to: if the "angle is >= 5f", i want to do dir *= -1 to reverse it

if (/* angle delta is >= 5f or <= -5f */)
{
dir *= -1;
}

谢谢

最佳答案

如果只是想来回旋转,可以使用正弦波来平滑地来回移动。

public class rotator : MonoBehaviour {

public float _Angle;
public float _Period;

private float _Time;

// Update is called once per frame
void Update () {
_Time = _Time + Time.deltaTime;
float phase = Mathf.Sin(_Time / _Period);
transform.localRotation = Quaternion.Euler( new Vector3(0, phase * _Angle, 0));
}
}

关于unity-game-engine - unity3d 以有限的角度来回旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com