我正在尝试围绕对象旋转相机,但是当角度在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);
}
您遇到的问题是transform.rotation
返回一个quaternion
,四元数的y
分量与y轴不对应,实际上,建议您不要直接触摸这些值除非您对四元数非常熟悉。
尝试:
transform.rotation.eulerAngles.y != 90 // this will correspond to the y-axis
假设您的代码可以轮换工作,这应该可以解决您的问题