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

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

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

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

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

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

代码:

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值