我如何绕某个点旋转但以一定角度停止?

问题描述 投票:1回答:1

我正在尝试围绕对象旋转相机,但是当角度在y轴上达到90度时停止。

[我已经找到了诸如“ RotateTowards”:https://docs.unity3d.com/ScriptReference/Quaternion.RotateTowards.html的选项,以及诸如“ RotateAround”:https://docs.unity3d.com/ScriptReference/Transform.RotateAround.html的选项,但是我试图找到一种将两者结合的方法。

我尝试过但未成功执行的代码:

void Update()
{
    if (cameraChange && transform.rotation.y != 90)
    {
        // transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.Euler(0, 90f, 0), Time.deltaTime * speed);
           transform.rotation.RotateAround(player.transform.position, new Vector3(0, 1, 0), Time.deltaTime * speed);

    }
}

void GameOver()
{
    cameraChange = true;
    transform.LookAt(player.transform);
}
c# unity3d
1个回答
0
投票

您遇到的问题是transform.rotation返回一个quaternion,四元数的y分量与y轴不对应,实际上,建议您不要直接触摸这些值除非您对四元数非常熟悉。

尝试:

transform.rotation.eulerAngles.y != 90 // this will correspond to the y-axis

假设您的代码可以轮换工作,这应该可以解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.