unity2D横版游戏教程-3 Cinemachine镜头移动

Cinemachine是官方提供的摄像机工具组件,这个工具的用处还蛮大的,不过我们这里就简单说一下在2D游戏里面怎么实现镜头跟踪的效果,这里我们用Cinemachine代替使用Main Camera

我们想要让我们的镜头跟随我们的角色移动,包括跑步,跳跃等动画,当然用脚本控制Main Camera也可以实现,思路就是让Main Camera的transform里面的position实时的设置成角色的position即可

但是这样做的话我们可能会看到我们背景的边界,通过Cinemachine可以很方便的解决这个问题,可以精准的控制我们镜头的边界以及跟随问题

我们在Hierachy栏创建一个空组件,命名为Background,表示背景,然后从外面拖入一张图片用来做背景图片,这个可以自己找一张大一点的图片就行,把这个图片放在Background的下面当背景图片用

PS:如果需要这张图的话可以在这里取:https://pan.baidu.com/s/17zyG6etLABXqJuOmg0IjnQ

提取码:yjsl

960a4f3e760349b7be41f2aa89355617.png

 b7285b1b03004585a95d8398b98aec67.png

 这时候发现角色和地图不见了,因为被这个背景图片挡住了,类似于ps的图层一样,我们点击background,右边属性栏,在sprite Renderer(精灵渲染器)有一个sorting layer,这里我们可以设置图层渲染的顺序,越在上面的会先渲染

6a8e265efdb4473d924d69f342b75b0c.png

 我们创建player,Map,background,collection,Enemy五个图层顺序,我们把角色的Sorting layer设置成player,地图的的sorting layer在Tilemap Renderer那里,设置成Map,背景图片设置成background,collection和Enemy图层留着后面用

57b3ab3feaa54af2a6c876e8ee1f19a7.png

 接下来我们就要使用Cinemachine了,windows->Package Manager,打开package之后,左上角选择unity Registry,找到Cinemachine然后install即可

bd9da7a58aa44a1cad1abfd94ca81a79.png

 安装完之后我们就可以在上面的Component找到Cinemachine了

a0bae8273a5a4386bfdd33630f74e3b4.png

 我们在Hierachy界面右键创建一个2D的camera

93811276ed6d4d06bc7ea49f7145ef7a.png

 64c9d6de7b1a46c0bc584c5f4e89d7d3.png

 这个CM vcam1就是我们创建的2Dcamera,我们有了这个camera,原来那个Main camera的参数就没用了,我们设置一下这个CM vcam1

6e5fd2bc6f034398be1650ddc26bd315.png

 通过设置这个Follow就可以设置我们的摄像头跟随哪个角色了,我们把player拖过来即可

然后还可以在Body调整它别的参数,在这里不在赘述,感兴趣的可以去试试

之后我们运行一下就可以发现我们镜头已经跟随我们角色在移动了

但是我们还没解决角色跳出边界的问题,这时候我们要为2Dcamera添加额外的一个组件,选中这个2Dcamera,在右边属性栏在最下面有一个Extensions(扩展),我们选择CinemachineConfiner,这个组件可以帮我们找到边界的位置

dde815fb97a246c8baccc39c398fd43a.png

 选择之后我们还需要一个2D的collider(碰撞器)来确定镜头移动的范围,所谓我们给我们的Background添加一个collider,我们在Hierachy选中Background

6e19ced5d7324000bbb620dcaf0b8bb3.png

 在右边属性栏,添加一个Polygon Collider 2D(2D多边形碰撞器),因为2Dcamera需要的就是Polygon Collider 2D

17ad28eaed534ffd8fd329e71c437a1e.png

 添加之后我们设置一下它的位置就行,直接拖拽多边形的顶点到合适的位置就行,如果你不需要某个顶点,按住ctrl,点击就能删掉了。如果你想拖得很精细的话可以放大

b96a2caf643b4955931ef2b587dbbe5c.png

 调整好之后我们把这个碰撞器传给我们的2Dcamera

611d37dfc1b740da8c435490aac62979.png

 点击运行之后发现我们的角色会直接掉落下去,因为我们给Background添加的是一个碰撞体,会和我们的游戏角色产生碰撞将我们的游戏角色弹走,所以我们给Polygon Collider 2D勾选is Trigger,is Trigger就是一个开关,如果勾选就可以把这个collider当做一个触发器而不是一个碰撞体,就不会和我们游戏角色发生冲突了

7166c7eb0dcb48c69d5923ce9353782f.png

 我们再运行一下发现角色跳起来会卡顿,这是因为我们的镜头没有调整好,我们把镜头拉近一点

a45e60de7df34ce5ad7b2e9595c844da.png

 我们在CM vcam1属性栏那里调整Ortho Size的大小就可以调整镜头离角色的距离,把Ortho Size调整到合适的大小,然后再运行就会发现没有卡顿的感觉了

如果玩家跑起来抖动的话,把摄像机更新模式改为FixedUpdate固定帧率刷新,这个组件在MainCamera中,原因可能是移动代码在FixedUpdate中,而摄像机不在,不同步导致的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真的没事鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值