Unity实现人物移动和镜头跟随

本文介绍了初学者如何在Unity中实现人物移动、镜头跟随、摄像机放大缩小及物体自身旋转。通过创建移动物体脚本、输入控制脚本,设置物体移动方向,实现360度视角旋转。同时,详细讲解了摄像机的垂直跟随和放大缩小效果,以及物体朝向的动态调整。通过学习,读者可以掌握基础的游戏视角控制技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我作为初学者学习出来的一个实现人物移动和镜头跟随的办法,那来看看我是怎么学习的 

目录

一、镜头根据鼠标输入进行旋转

二、物体根据键盘输入进行移动

1、创建移动物体脚本

 2、创建输入控制脚本

 3、确定物体移动的前进方向

三、摄像机跟随人物

四、摄像机的放大与缩小

五、物体自身的旋转

 六、总结


一、镜头根据鼠标输入进行旋转

首先我们在Unity中建一个空物体(Photographer)坐标就设为(0,0,0),然后将摄像机作为我们的空物体的子物体Transform改为(0,0,-10),这样代表摄像机的这个子物体的局部位移往后平移10个单位,这样之后我们在旋转空物体(Photographer)的时候就有一个摄像机围绕它旋转的效果。

 我们应该知道Unity的蓝色箭头是Z,绿色箭头是Y,红色箭头是X。

接下来就是给空物体(Photographer)新建一个脚本了C#命名为Photographer。

如果我们绕着X轴旋转,那么视角就是一个上下的效果。如果我们绕着Y轴旋转,那么视角就是一个左右的旋转。所以我们定义两个属性Pitch和Yaw分别代表X轴旋转和绕着Y轴旋转的旋转量是多少。

 然后我们的旋转是有灵敏度的,我们再定义一个mouseSensitivity来控制旋转的灵敏度,具体就是给它一直值去乘我们通过Input.GetAxis("Mouse X")获取的变化量,这里Mouse X本身就是个变化量,乘上一个数值就是用来扩大获缩小它变化本身的值。(这里如果是手柄输入的话就不是这样了,手柄是一个渐进的过程,有兴趣的小伙伴可以去研究一下)

 

接下来我们写一个方法UpdateRotation来实现旋转,然后我们人在左右时可以控制我们的身体旋转在得到360度的视角,而上下只能控制我们的头抬起或者俯看,不可能头能上下旋转360度吧,所以我们的在绕着X轴旋转也就是视角上下的时候是有角度限制的,我们用到了Mathf.Clamp()来限制上下的角度,最后将我们Pitch和Yaw设为欧拉角的X和Y,也就是Quaternion.Evler(Pitch,Yaw,0)赋值给transform.rotation。然后将函数放到Update里运行。

(+=我的理解是一个累加的过程。Yaw和Input.GetAxis("Mouse X")这里我都理解是一个数。Yaw累加了我们输入的每一个Input.GetAxis("Mouse X")的数)

 这样我们就实现了基本的上下左右视角啦。这里有可能上下的方向是反的,把Mouse X的invert勾上就可以啦。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值