我在这里做的是使用
在按键上一次将相机旋转90度transform.eulerAngles = Vector3.Lerp (transform.eulerAngles, currentpos, Time.deltaTime * speed);
和
if (transform.eulerAngles.y == 360){
currentpos = transform.eulerAngles + new Vector3 (0, 0, 0);
}
问题是,当相机达到360度时,它想要尝试将角度更改为450,因此卡在无限旋转的环路中。
我必须使用欧拉角,因为相机倾斜45度,欧拉角度全局旋转而不是局部旋转
我的问题是如何让它停止无限循环并从360度旋转到90度以及不反向旋转例如我试过
Vector3.Lerp
然而SheetName = {'daraie ha';'motalebat';'bedehi ha';'daraie ha'};
RowNumber = [1; 9; 10; 20];
AllBanks = table(SheetName,RowNumber);
然后以相反方向向后旋转0而不是经过360度达到0。
答案 0 :(得分:1)
我建议使用Mathf.LerpAngle()
无论您设置的角度是360度以上(比如360 + x)还是仅设置角度x,它都会按照您的预期进行插值,而不会尝试向相反方向拍摄。
我希望有所帮助!
修改强> 正如@JoeBlow在上面的评论中提到的,我还建议使用任何一种Rotate方法(在变换和四元数上),而不是直接设置目标值。在大多数情况下,它会确保顺利旋转,无论你想要它快速或慢慢。