《Unity开发实战》——2.2节创建画中画效果

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 更多内容
下面是“画中画”可以改进的方面。

  1. 让画中画自适应屏幕尺寸
    如果想把Dimensions In(单位)选项修改成screen_percentage(屏幕百分比),视口的尺寸将会基于屏幕的实际大小,而不是pixel(像素)。
  2. 修改画中画的位置
    Vertical Alignment(纵向对齐)和Horizontal Alignment(横向对齐)可以用来修改视口的初始位置。用它们把视口放在期望的位置。
  3. 阻止画中画每帧更新
    如果不想在运行模式下改变视口的位置,可以取消选择Update(更新)选项。最好在测试的时候选中,然后在位置设置好以后再取消选择一次。
时间: 2025-01-29 21:50:00

《Unity开发实战》——2.2节创建画中画效果的相关文章

《Unity开发实战》——导读

目 录 前 言 第1章 Unity 4.X 入门1.1 引言1.2 安装Unity 4.X1.3 设置首选项1.4 了解和优化用户界面1.5 把Unity中创建的资源另存为Prefab1.6 了解Unity中的Content1.7 导入自己的Content1.8 导入Unity的包到项目中1.9 导入自定义包到项目中1.10 从项目中导出自定义包1.11 添加自定义包到Unity的包快捷列表中1.12 使用项目浏览视图 第2章 使用摄像机2.1 引言2.2 创建画中画效果2.3 在不同摄像机之间

《Unity开发实战》——1.5节把Unity中创建的资源另存为Prefab

1.5 把Unity中创建的资源另存为Prefab在Unity中很容易就能创建基础几何对象,本节中,使用Unity的资源创建一个游戏对象(GameObject)然后将其在项目中另存为Prefab(预设). 1.5.1 操作步骤请按照下面的步骤创建Prefab(预设):1)在Unity编辑器中,依次打开 GameObject(游戏对象)| Create Other(创建其他)| Sphere(球体).2)在Hierarchy视图中,右击Sphere,在弹出菜单中选择rename(重命名)改名为"C

《Unity开发实战》——3.2节创建反射材质

3.2 创建反射材质金属.车漆,以及光滑的塑料表面都是一些很常见的需要反射的材质的例子.幸运的是,Unity内置了反射着色器(reflective shader),配置好以后就可以帮我们实现想要的效果了. 3.2.1 准备工作本节需要准备两个纹理贴图:Base Map(底图)和Reflection Cubemap(反射立方图).底图得是一张RGBA的图片,alpha通道可以把反射级别指定成从完全不透明(黑色)到完全反射(白色).反射立方体贴图可能是由六块纹理组成,或者像本节教程这样,只有一个单独

《Unity开发实战》——2.4节自定义镜头光晕效果

2.4 自定义镜头光晕效果 过去15年里,在户外环境玩过游戏的任何玩家都知道:镜头光晕(lens flare)效果用于模拟明亮的光照穿透玩家的视野.虽然这个技术现在已经用滥了,但仍然出现在各类游戏中.本节将练习创建镜头光晕效果. 2.4.1 准备工作 强烈建议读者用图片编辑器(Adobe Photoshop或GIMP)打开图片.示例代码中的0423_02_03文件夹中有本节需要用到的镜头纹理(lens texture)的源代码. 2.4.2 操作步骤 请按照下面的步骤创建一个新的镜头光晕纹理并应

《Unity开发实战》——2.8节用Shuriken制作粒子效果

2.8 用Shuriken制作粒子效果 从Unity 3.5起,可以用粒子系统制作很多令人惊叹的效果.之前很多需要用脚本实现的效果现在完全可以用Shuriken粒子系统的设置实现. 2.8.1 准备工作 在使用之前,最好先查看一下Unity的粒子系统中的重要属性和参数值的修改方式.粒子系统的一些基础属性如下: Energy(能量):粒子的存活时间. Looping(循环):所有粒子都"死亡"后是否重新生成. Speed(速度).direction(方向)和 rotation(旋转):每

《Unity开发实战》——3.5节创建透明纹理贴图

3.5 创建透明纹理贴图如果想让玩家的视线穿透一个物体,则需要透明或半透明的材质.塑料薄膜.剪贴画.网格等人工产品是可以用透明纹理贴图制作的. 3.5.1 准备工作本节会创建一个材质来模拟塑料薄膜,选它的主要原因是这种材质允许我们使用全透明制作边框的rounded borders,也可以使用半透明显示薄膜(film)本身.本节其余部分假设读者已经能够使用图片编辑器创建图片,比如一张有斜面的圆角矩形图片.如果不会操作,随时使用示例代码中名为"0423_03_04"的文件夹中的准备材料.

《Unity开发实战》——3.4节创建高光纹理贴图

3.4 创建高光纹理贴图有些表面可能既有光滑的区域,又有粗糙的区域,为了达到这个效果,可以使用高光贴图(specular maps). 3.4.1 准备工作为了便于讲解,本节将创建一个生锈的金属材质来演示specular属性如何增强现实.如果读者还没有用于生成高光材质的基础纹理,示例代码中名为"0423_03_03"的文件夹中有本节需要用到的素材. 3.4.2 操作步骤请按照下面的步骤创建高光材质:1)创建一个新的材质,命名为:rustyMetalMaterial.2)选择此材质.在I

《Unity开发实战》——3.3节创建自发光材质

3.3 创建自发光材质自发光材质可以用于模拟很多对象,从LED手机显示屏到未来主义的Tron套装上.本节我们将学习如何配置自发光材质以及它的纹理贴图. 3.3.1 准备工作因为本节将创建一个LCD显示屏的例子,所以请读者确认已经安装这种字体.如果尚未安装,可以在网站www.dafont.com下载几个免费的LCD字体. 3.3.2 操作步骤请按照下面的步骤创建自发光材质:1)创建一个材质,命名为LCDMaterial.在Project视图中点击Create下拉菜单并选择Material(材质)是

《Unity开发实战》——3.7节创建颜色选择对话框

3.7 创建颜色选择对话框 游戏中的用户自定义和玩家制作内容的出现已经有一段时间了.有一个很常见的功能是让用户修改avatar(人物头像)的颜色.本节中将创建一个对话框让玩家通过修改对象的颜色滑动条,控制材质的红色值.绿色值.蓝色值. 3.7.1 准备工作 如果想使用准备好的示例场景,可以在文件夹0423_03_06中找到,然后导入名为colorSelector的包. 3.7.2 操作步骤 请按照下面的步骤创建颜色选择对话框: 1)导入包后,打开 colorSelection 场景. 2)展开H