谁能帮我制作一个朝特定角度旋转的脚本

时间:2019-02-06 20:41:19

标签: c# visual-studio unity3d game-physics

我正在做一个统一游戏, 我有一个游戏对象,需要不断向目标角度旋转 而且它需要走最短的路

我尝试使用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;
    }

您可能会看到旧代码中的某些部分

我使用这种齿轮系统的原因是它不会卡在奇怪的位置,但是我不确定如何将其不断旋转到目标角度

1 个答案:

答案 0 :(得分:0)

您可以尝试两件事:

  • 在Update中,每次计算您与目标之间的方向,然后计算角度,然后使用Quaternion.AngleAxis()或简单地使用Quaternion.RotateTowards()

  • 您还可以简单地使用Transform.LookAt(yourTarger.transform)