《Unity开发实战》——2.3节在不同摄像机之间切换

简介:

本节书摘来自华章社区《Unity开发实战》一书中的第2章,第2.3节在不同摄像机之间切换,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.3 在不同摄像机之间切换
在很多类游戏中,在多个摄像机间切换是很常见的功能,如:竞速游戏、体育游戏、大富翁/策略,还有很多其他的游戏。本节将介绍如何用键盘切换摄像机。

2.3.1 准备工作
示例代码的0423_02_01_02文件夹中有名为 “basicScene”的包是专为本节准备的,包中有一个基本的level。

2.3.2 操作步骤
请按照下面的步骤实现可切换的摄像机:
1)把basicLevel包导入到Unity中。
2)在Project视图中,打开02_01_02文件夹下的basicScene场景,这是一个基础场景,带一个方向光、一个摄像机和一些几何对象。
3)添加两个或更多摄像机到场景中。这可以通过Hierarchy视图顶部的Create下拉菜单,把它们重命名为cam1和cam2。
4)修改cam2摄像机的Position(位置)和Rotation(旋转方向),让它和cam1区分开来。
5)通过GameObject | Create Empty创建一个Empty(空)的游戏对象。然后重命名为Switchboard。
6)在Inspector视图中,禁用cam1和cam2的Camera和Audio Listener组件。


bb9dd156fd56881eed9c4f31212624b2bb1082e5


2e32da6ab0326fa485506c5b5dac889a9129a450

11)播放场景,测试摄像机。

2.3.3 实现原理
脚本很简单,都是关于如何捕捉按键和分别开启摄像机(以及它的Audio Listener,如果Change Audio Listener选项处于选中状态)的。

2.3.4 更多内容
这里有几个关于如何改变本节内容的想法:
1.只开启一个摄像机
有一种不同的实现方式是禁用所有的副摄像机,并且通过脚本把它们的position和rotation都赋值给主摄像机(最好复制一份主摄像机并添加到列表中,以防需要保存transform设置)。

  1. 通过其他事件触发切换摄像机
    也可以用下面的代码从其他游戏对象的脚本切换摄像机:


86bdfc7ba52617ecb0b66cac9ed385dcc479af1f
相关文章
|
10天前
|
图形学
unity摄像机的平滑过渡,平滑缓冲
在Unity中,通过插值计算实现摄像机的平滑过渡与缓冲效果,避免突兀跳跃,提升玩家视觉体验。主要方法包括位置和旋转的平滑过渡,常用线性插值(Lerp)和SmoothDamp函数。代码示例展示了如何使用SmoothDamp实现摄像机从一个点到另一个点的平滑移动。将脚本挂载到场景中测试即可看到效果。
|
6月前
|
图形学
小功能⭐️Unity 如何判断物体是否在摄像机视野内或外
小功能⭐️Unity 如何判断物体是否在摄像机视野内或外
|
图形学 C#
[Unity3D]多个摄像机进行场景的切换
摄像机比作人的眼睛最适合不过了。比如:极品飞车里面可变换视觉角度,可以从多个角度观察汽车。 切换摄像机:一个键控制一个摄像机 这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种...
1201 0
|
图形学
[Unity3d]多个摄像机叠加效果
今天学习到一个多个摄像机看到的场景在同一个层显示,比如我们做一个类似反光镜的效果,当然反光镜可以直接用Shader来实现,但我就是了实现一个类比这样的一个效果,一个摄像机将看到的图像显示到一个Texture上,然后将Textrue赋予一个面板,然后另一个摄像机看到这个的这个面板放在UI层,然后最后将所有场景里面的物体都置于MainCamera的可见区域。
1103 0