这个在端游上比较场景,在角色展示的时候,当摄像头在角色身边上下左右旋转时,角色头部跟随镜头旋转。如天涯明月刀等。
这个在手游上比较少见,不过实现也没什么区别。
首先一般情况下,找到模型的头部节点,直接用lookAt指向camera就可以了,不过一般需求不会这么简单。
比如说,超过头部扭动极限,头部需要插值回到原始点;当镜头从外部回到极限内,需要插值回来。这时候lookat就没法使用。
更有情况,头部本身坐标系不在世界坐标轴上, 可能旋转了90多或者输出的prefab就是歪的等等,这些情况都没办法使用lookAt。
所以还是自己来写吧。
这里有两个选择,一个用四元数rotation,一个用欧拉角localEulerAngles。
两者就像网上所说,各有好坏
欧拉角的值就是在unity上inspector的值,非常直观。
但是最大的问题就是会死锁。并且这个没什么方法解决。
如果使用的话方式是这样,直接赋值
SceneCameraObject.transform.localEulerAngles = tar;
第二种就是选择用四元数取旋转。
这里使用的方式是
mHead.rotation = Quaternion.AngleAxis(rot.x -180, -mHead.right) * mHead.rotation;//传递过来的数据多了