【发布时间】:2019-02-06 20:41:18
【问题描述】:
我正在开发一个统一游戏,并且 我有一个游戏对象,我需要不断向目标角度旋转 而且需要走最短的路
我尝试使用 lerp 协同程序将其添加/减去角度,但是当我使用它快速时,它会卡在奇怪的位置
Transform target;
float speed;
//The angle to constantly rotate torwards
float yRotation = 120f;
private int dick;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.D))
{
if (dick < 3)
{
dick += 1;
}
else
{
dick = 1;
}
}
else if (Input.GetKeyDown(KeyCode.A))
{
if (dick >0 )
{
dick -= 1;
}
else
{
dick = 3;
}
}
if (dick == 1)
{
yRotation = 0;
}
else if (dick == 2)
{
yRotation = 120;
}
else if (dick == 3)
{
yRotation = 240;
}
您可能会看到旧代码中的某些部分
我使用这种齿轮系统的原因是它不会卡在奇怪的位置,但我不知道如何不断地将它旋转到那个目标角度
【问题讨论】:
-
对不起变量名,我试过 IEnumerator RotateMe(Vector3 byAngles, float inTime) { var fromAngle = transform.rotation; var toAngle = Quaternion.Euler(transform.eulerAngles + byAngles); for (var t = 0f; t
-
看起来
if (dick>0) dick -=1实际上应该是if (dick>1) dick -=1 -
谢谢,但这不是我需要帮助的部分,我需要轮换本身的帮助
标签: c# visual-studio unity3d game-physics