Unity制作RPG游戏——相机的设计与实现

本文将详细介绍Player的相机设计,不适用任何插件,如何制作类似RPG游戏的相机。

首先,设置正确的Hierarchy层级关系:将camPos的position和euler传递给Main Camera即可

Unity制作RPG游戏——相机的设计与实现

其次,设计思路:视野左右旋转调节Player的rotate,上下旋转调节cameraController 

这样设计的好处是符合我们实际的操作习惯,例如玩家要向前移动,默认是希望向前视野的前方移动,所以在水平方向上来调节Player的rotation更好,竖直方向上我们可能还需要做lockon注视等操作,同时,放在一个物体上进行旋转容易产生万向锁,所以这样分开处理。

最后,处理上下视野切换时,容易产生的翻转问题,见代码

代码:

下面这段代码根据上面的设计,实现了镜头的旋转,并限定上下旋转镜头的范围是-40~50.但是会出现一个严重的bug,上下旋转时cameraController的x欧拉角永远不会小于0,小于0则会从50开始,这可能跟读取欧拉角时默认读取正数有关,例如当x欧拉角旋转为-1时,读取数据会变为359,最后根据clamp则变为50,所以镜头会在0附近进行较大幅度的突变。

Unity制作RPG游戏——相机的设计与实现

解决方案是,在start方法里就读取出x轴的欧拉角,在update中完成计算后,再赋值给物体自身,见代码:

Unity制作RPG游戏——相机的设计与实现

这样就基本完成了一个相机的设计。