这是用户在 2025-8-3 13:32 为 https://learn.unity.com/tutorial/she-xiang-ji-cinemachine?uv=2020.3&projectId=5facf921edbc2a2003a58d... 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
Unity Learn 主页
查看教程内容

摄像机 - Cinemachine

教程
初级
1 小时
(538)
摘要
到目前为止,你的游戏只在一个屏幕上运行,因此你使用了一个静态摄像机
在本教程中,你将使用一个名为 CinemachineUnity 包来自动控制摄像机,而无需编写代码。你希望摄像机跟随你的主角,以便主角可以开始探索更大的世界。
注意:本教程需要连接互联网,因为你需要下载 Cinemachine 包
选择 Unity 版本
最后更新:2021 四月 12
2020.3
2020.2
2020.1
2019.4
2019.3
2019.2
2019.1
2018.4
2018.3
语言
中文

1.

Unity 附带了大多数游戏和应用程序所需的许多内置功能。某些更专业的功能并非是所有游戏都需要的,因此以包的形式来提供。包只是增加了使用这些包的项目的大小,但包的更新很快并且简单。
包就是一堆代码和资源,可以使用 Package Manager 将包添加到项目中。包可以为你的项目增加功能,让你无需自己编写代码,例如虚拟现实支持、后期处理效果或你在本教程中所寻找的功能:其他摄像机功能。
要添加 Cinemachine 包,请执行以下操作:
1.Unity 编辑器中打开 Package Manager(菜单:Window > Package Manager)。
2.找到 Cinemachine 条目,然后单击右下角Install
选择要展开的图像
输入图像描述 (可选)

3.Install 按钮将变为 Installing,而在包完成导入后将变为 Up to date。你现在便有了 Cinemachine,这个工具可以在项目中设置和移动摄像机。
提示:单击版本号下面的 View documentation 蓝色链接可查看包的文档。

2.Cinemachine 设置

Cinemachine 使你可以创建复杂的 3D 摄像机设置,从而允许在多个摄像机之间移动和切换。
你现在只需用来让摄像机跟随 2D 目标。Cinemachine 还包括 2D helper 功能,可将摄像机限制在特定边界范围内,这样就不会显示地图边界之外的对象。
1.要开始使用 Cinemachine,你需要在顶部菜单栏上选择 Cinemachine > Create 2D Camera 条目,从而将 Cinemachine 2D 摄像机添加到场景中。
2.此时将创建一个名为 CM vcam1 的新游戏对象(表示 Cinemachine Virtual Camera 1)。
如上所述,Cinemachine 可与多个摄像机配合使用,并根据游戏的需要在多个摄像机之间进行切换,例如在对话中对某个镜头与反拍镜头进行切换。
3.为此,Cinemachine 使用虚拟摄像机,你可以在每个虚拟摄像机上选择不同的设置,然后告诉实际摄像机(在 Hierarchy 中名为 Main Camera)当前哪个虚拟摄像机处于活动状态,以便可以复制设置。
在你的示例中,只需更改 CM vcam1 虚拟摄像机上的设置,实际摄像机就会复制这些设置。
4. 如果打开 Game 视图,应该会看到摄像机现在看起来更远了,并且可以看到更大的世界(如果你的瓦片地图 (Tilemap) 绘制范围没有超过以前的屏幕限制,甚至可能会看到一些蓝色背景)。
选择要展开的图像
输入图像描述 (可选)

这是因为摄像机现在使用的默认虚拟摄像机设置与以前的摄像机设置不同。
5.要再次放大,请在 vcam Inspector 中的 Lens 部分找到一个名为 Orthographic Size 的属性,并将这个属性设置为 5 而不是 10
选择要展开的图像
输入图像描述 (可选)


3.摄像机模式

Unity3D 应用程序中,摄像机可以有两种模式
1.透视:所有远离摄像机的线都会汇聚到一个点,因此距离摄像机越远,看起来就越小。这有点像一条直路在远处消失,这条路的两边看起来就像汇聚成了一个点。
2.正交:所有平行线将保持平行。
选择要展开的图像
输入图像描述 (可选)

由于你处于 2D 模式,不想对象随着距离变小,因此你希望摄像机处于正交模式。
注意:使用 2D 模板创建项目时,摄像机便已经自动设置为正交模式。
简单来说,Orthographic size 是指在摄像机的一半高度内可容纳多少个单位,因为这就是摄像机的工作方式。由于我们将该属性设置为 5,所以可以在屏幕的垂直方向上看到 10 个世界单位。请确保设置为高度的一半,因此,如果希望摄像机能够看到的高度是 50 个世界单位,请将该属性设置为 25
为什么要设置高度而不设置宽度?实际上,这是因为宽度会根据用户为游戏窗口设置的分辨率而变化。
屏幕可以具有很多分辨率,如 4:316:916:10,因此摄像机将根据屏幕形状显示不同宽度的世界,但垂直高度始终相同。

4.跟随主角

现在,我们让 Cinemachine 设置摄像机以跟随角色。
1.只需将你的主角从 Hierarchy 拖放到 vcam InspectorFollow 属性中:
选择要展开的图像
输入图像描述 (可选)

摄像机将立即移动到位,使 Ruby 位于屏幕的中央
2. 让我们在 Scene 视图中快速绘制一个更大的世界,并在周围添加水面瓦片来阻止 Ruby 离开我们的地图。如果你不记得如何在瓦片地图上进行绘制,可以复习一下有关绘制世界的教程
选择要展开的图像
输入图像描述 (可选)

现在单击 Play 来运行场景时,你会看到当 Ruby 在地图上移动时摄像机会跟随她。但还是有一个问题:当 Ruby 走到边缘时,你可以看到地图的“外面”:
选择要展开的图像
输入图像描述 (可选)


5.摄像机边界

要阻止摄像机显示地图之外的任何内容,你需要使用 Cinemachine Confiner 定义一些边界。
要添加 Cinemachine Confiner,请转到 Virtual Camera Inspector 的底部,单击 Add Extension 下拉选单,然后选择 CinemachineConfiner
选择要展开的图像
输入图像描述 (可选)

新添加的组件将显示一条警告,因此需要提供一个 Collider 2D 以用作边界。Confiner 可以使用 Composite Collider 2DPolygon Collider 2D
让我们将一个 Polygon Collider 2D 添加到场景中:
1.单击 Hierarchy 右上角的Create 按钮并选择 Create Empty 来创建一个新的游戏对象
选择要展开的图像
输入图像描述 (可选)

2.选择这个新的游戏对象,然后将其重命名为 CameraConfiner(在 Windows 上按 F2 或在 Mac 上按 Return,选中后再次单击,或使用 Inspector 顶部的框)。
3. 单击 Add Component 按钮,搜索 Polygon Collider 2D 并添加该组件。
4.Polygon Collider 2D 上,单击 Edit Collider 旁的按钮,然后移动各个点以将这些点放在每个角的水中央。可以在拖动时按 Delete 键来删除某个点(例如五边形上最顶端的点)。
5.在每个角都有一个点后,再次单击 Edit Collider 旁边的按钮。
选择要展开的图像
输入图像描述 (可选)

注意:请使用结尾处的点设置将值取整,确保边框是直线。不进行此设置,Confiner 也能工作,但进行此设置后会更平整。
然后回到 vcam1 并将该游戏对象分配给 CinemachineConfiner 上的 Bounding Shape 2D 属性:
选择要展开的图像
输入图像描述 (可选)

现在,如果尝试单击 Play 来运行游戏,你的角色将从屏幕上消失。如果在 Scene 视图中查看,就会看到角色被推到了世界之外。因为世界现在位于大型碰撞体内,所以物理系统会直接将你的角色推出去。

6.找回你的角色

要将角色带回场景中,需要使用图层 (Layers),就像在上一教程中对飞弹进行的操作一样。请参阅该教程以了解更深入的介绍,但在这里我们也简要提醒一下所需的步骤:
1.在 Inspector 的右上角,单击 Layer 下拉选单,然后选择 Edit Layer
2.选择一个空字段并将其命名为 Confiner
3.Confiner 游戏对象上,将 Layer 下拉选单设置为 Confiner
  • 选择 Edit > Project Settings > Physics 2D,然后取消勾选 Confiner 图层中的所有条目:
选择要展开的图像
输入图像描述 (可选)

现在,Confiner 图层中的所有对象都不会与其他对象碰撞。进入运行模式,然后将 Ruby 四处移动。摄像机现在将停在地图边缘。

7.总结

在本教程中,你将 Cinemachine 包导入到了 Unity 中并使用了这个包来处理摄像机移动
要获得有关如何使用 Cinemachine 的更多信息,特别是如果你要尝试使用虚拟摄像机属性(例如阻尼移动以及跟随或跟随速度),请查看相关文档
提示:请注意一下 Package Manager,因为其中包含的包不但可以帮你创建游戏,还可以减少你的工作量。
在下一教程中,你将了解如何使用粒子系统 (Particle System) 进行图形方面的一些改进。

项目:
Ruby's Adventure:2D 初学者
摄像机 - Cinemachine
摄像机 - Cinemachine
一般教程讨论
0
0
1. 包
3
2
2. Cinemachine 设置
7
2
3. 摄像机模式
0
0
4. 跟随主角
0
0
5. 摄像机边界
4
4
6. 找回你的角色
0
1
7. 总结
0
0