本节书摘来自华章社区《Unity开发实战》一书中的第2章,第2.2节创建画中画效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看
2.2 创建画中画效果
在很多情况下,用多个视角显示是很有用的。比如,想显示不同地点同时发生的事件,或者多人对战(hot-seat multiplayer)游戏中为每个玩家显示单独的窗口,虽然也可以手动调整摄像机的Normalized Viewport Rect(标准化视口矩形)参数。本节包含一系列附加的首选项设置,使之独立于用户的显示器配置。
2.2.1 准备工作
示例代码的0423_02_01_02的文件夹中有一个名为 basicLevel 的包是专为本节准备的,包中有一个场景。
2.2.2 操作步骤
请按照下面的步骤创建画中画显示效果:
1)把basicLevel包导入到Unity中。
2)在Project视图中,打开02_01_02文件夹中的basicScene场景,这是一个基本场景,有一个方向光、一个摄像机和一些几何对象。
3)通过Hierarchy视图顶部的Create下拉菜单添加Camera选项到场景中,如下图所示:
5)在Project视图中,创建一个C# Script(C#脚本),重命名为“PictureInPicture”。
6)打开脚本并替换成下面的代码:
也许你还没注意到:这里没有用数字除以100去实现百分比,而是把数字乘以0.01。原因是计算机处理乘法的效率比除法更高。
7)保存脚本,并将其附加到刚才新创建的摄像机上。
8)取消选择此摄像机的Audio Listener(音频监听器)组件,修改PictureInPicture的部分参数:把Horizontal Alignment(横向对齐)改成right(右对齐),Vertical Alignment(纵向对齐)改成top(顶对齐),Dimensions In(单位)改成pixels(像素),XOffset(X轴偏移量)和YOffset(Y轴偏移量)设成0,Width(宽度)改成400,Height(高度)改成200,如下图所示:
2.2.3 实现原理
脚本修改了摄像机的Normalized Viewport Rect参数,从而按照用户偏好修改视口的尺寸和位置。
2.2.4 更多内容
下面是“画中画”可以改进的方面。
- 让画中画自适应屏幕尺寸
如果想把Dimensions In(单位)选项修改成screen_percentage(屏幕百分比),视口的尺寸将会基于屏幕的实际大小,而不是pixel(像素)。 - 修改画中画的位置
Vertical Alignment(纵向对齐)和Horizontal Alignment(横向对齐)可以用来修改视口的初始位置。用它们把视口放在期望的位置。 - 阻止画中画每帧更新
如果不想在运行模式下改变视口的位置,可以取消选择Update(更新)选项。最好在测试的时候选中,然后在位置设置好以后再取消选择一次。