我正在做一个统一游戏, 我有一个游戏对象,需要不断向目标角度旋转 而且它需要走最短的路
我尝试使用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;
}
您可能会看到旧代码中的某些部分
我使用这种齿轮系统的原因是它不会卡在奇怪的位置,但是我不确定如何将其不断旋转到目标角度
答案 0 :(得分:0)
您可以尝试两件事:
在Update中,每次计算您与目标之间的方向,然后计算角度,然后使用Quaternion.AngleAxis()或简单地使用Quaternion.RotateTowards()
您还可以简单地使用Transform.LookAt(yourTarger.transform)