10.unity摄影机跟随功能(Cinemachine)

在设立完障碍物之後,就要让小红帽跑起来啦~ 游戏视窗也要跟着走才行!!
1.jpg

此篇写如何实现摄影机跟随

想了解更多功能 (请参阅Cinemachine文件说明)

步骤小抄

一、导入**Windows → Package Manager → Unity Registry → Cinemachine → Install

二、新增** Cinemachine → Create Virtual Camera
(follow设定要跟随的物件、Lens可调整大小、Body调整Damp)

三、处理边界问题 Extensions → CinemachineConfiner → Bounding shape设定empty物件
(要创一个empty物件,挂载polygon collider2D,框地图外围)
边界会把角色档在外面,因此要设立一个新图层
Edit → Project settings... → Physics 2D
把图层跟其他图层的交互作用都关掉

//图层关法,假设我开了新图层取名B
 A B C
AV   V
BV   V
CV   V

文字懒人包在此↑


详细过程

一、导入Cinemachine

Windows → Package Manager → Unity Registry → Cinemachine → Install
2.png
3.png
4.png
完成导入会在上方看到Cinemachine
5.png

二、创建虚拟摄影机

Cinemachine → Create Virtual Camera

1.新增摄影机
6.png
创建好就可以在阶层中看到CM vcam1
7.png
接着进入CM vcam1的Inspector

2.设定follow物件
在follow设定要跟随的物件(可以直接从阶层拉物件放进去,也可以用选的)
8.png
拉进来之後摄影机就会追随角色罗!

动起来如果感觉飘移很严重,可以调整Damp
9.png

三、处理边界

目前摄影机会跟随角色,但是遇到边界会超过,因此现在要来处理边界问题!
10.png

Extensions → CinemachineConfiner

1.新增Extension
11.png

2建立空物件
要创一个empty物件,挂载polygon collider2D,框地图外围范围
12.png
(※记得空物件在阶层中不要挂载在CM vcam1之下,会变成框跟摄影机一起移动)

3.用polygon collider2D设定碰撞范围
17.png

4.Bounding shape设定empty物件
把空物件拉进CinemachineConfiner的Bounding shape,让摄影机知道要在哪个范围内
15.png

5.建立图层
空物件的碰撞范围(地图边界)执行後会把角色档在外面,因此要设立一个新图层,并且把新图层跟其他图层的交互作用都关掉。
13.png
14.png

6.关闭交互作用
Edit → Project settings... → Physics 2D
16.png

这样摄影机就被边界关住罗!
18.png

最後再来思考一个问题,如何让角色也被关着呢?

现在摄影机会自动跟随,且摄影范围被限制在地图内,但角色没有此限制,还是会跑出地图。

解决方法有很多,明天我会使用Tilemap碰撞2D,替地图增加山壁来实现XD。


摄影机这篇是我最想写的一篇,虽然没有程序码,但是很常使用,每次使用的时候,都要查找资源。因此想要写一个自己看的懂的懒人包XD。以後就会很方便了嘿嘿嘿。


<<:  [Python小程序] 陌生人监控器(Stranger Detector)

>>:  Day10 测试写起乃-FactoryBot(2)

Day 17-制作购物车系统之MongoDB设定

今天要用MongoDB cluster 以下内容有参考教学影片,底下有附网址。 (内容包括我的不专业...

[Day 14] 多棵决策树更厉害:随机森林 (Random forest)

随机森林 (Random forest) 今日学习目标 随机森林介绍 随机森林的树是如何生成?随机森...

知识工作者的管理

在上一篇我分享过我对「工作的意义与价值」的观察。读过後,你该不难理解为何当年 Jack Welch...

【C++】Data Type Size Of

这次我们要来学习资料型态在程序中的大小,亦即调查其所占的空间。 我列出一些常用的data type~...

[DAY29] 接上金流系统,串接建立订单功能

本日将完成从Line控制购物车品项,建立订单,产生付款连结,通知付款人 替购物车加上送出订单按钮 传...