本节书摘来自华章社区《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 更多内容
下面是“画中画”可以改进的方面。

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

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

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

    本节书摘来自华章社区<Unity开发实战>一书中的第3章,第3.4节创建高光纹理贴图,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区 ...

  2. 《Unity开发实战》——3.9节鼠标悬停时高亮显示材质

    本节书摘来自华章社区<Unity开发实战>一书中的第3章,第3.9节鼠标悬停时高亮显示材质,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云 ...

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

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.4节自定义镜头光晕效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社 ...

  4. 《Unity开发实战》——2.9节显示迷你地图

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.9节显示迷你地图,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区&q ...

  5. 《Unity开发实战》——1.3节设置首选项

    本节书摘来自华章社区<Unity开发实战>一书中的第1章,第1.3节设置首选项,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区&qu ...

  6. Leap Motion 之Unity 开发实战(一. 制作手的HandController)

    Leap Motion 之Unity开发实战 (一) 制作手的HandController 一. Unity官方包介绍 到如下链接下载 https://developer.leapmotion.com ...

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

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.8节用Shuriken制作粒子效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可 ...

  8. React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块...

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  9. 【猿创征文|Unity开发实战】—— 2D项目1 - Ruby‘s Adventure 游戏地图绘制(2-1)

    文章目录 1)使用指南 2)具体步骤详细剖析 2.1)<4-2.创建瓦片地图>操作更新 2.2)<4-3.创建新瓦片>操作更新 2.3)<5-2.如何才能解决排序问题?& ...

最新文章

  1. 「操作系统」《自己动手写操作系统》1.1前期准备工作
  2. geoip2 php,Geoip geoip-api-php 库包使用 – 通过ip 找到国家
  3. DBMS_STATS.GATHER_TABLE_STATS详解
  4. dosbox更新加载的文件夹
  5. springmvc 文件上传和拦截器
  6. android webView注入js方法
  7. 《重构-改善既有代码的设计》-第1例:租赁影片(1)
  8. 汇编语言调用c语言ads,ADS1.2 在汇编代码中调用C函数
  9. mybatis没有导入sqlsessionfactory包_MyBatis——搭建第一个MyBatis
  10. python 拼音识别_Python_语音合成
  11. cloudMusic.mps的前世今坑
  12. java实现多文件批量下载总结
  13. [git]warning: LF will be replaced by CRLF in 解决办法
  14. SpringBoot实现QQ邮箱注册和登录
  15. NVIDIA NCCL 源码学习(四)- 建图过程
  16. AI Text Classifier,OpenAI自家产品,我检测我自己
  17. 如何进入BIOS设置界面
  18. 异常:“严重: The web application [] appears to have started a thread named [Thread-”
  19. C语言学习记录——鹏哥二分法查找数组中元素 复习整理
  20. 完成ECshop的开源系统的详细过程

热门文章

  1. 【SVN】在阿里云上创建svn服务器
  2. mysql邮箱配置文件_SQL-数据库邮箱配置
  3. docker mysql 生产环境_Docker构建MySQL环境
  4. 数字信号处理实验三用fft对信号作频谱分析_机器学习中的音频特征:理解Mel频谱图...
  5. Java项目:茶叶售卖商城系统(java+SSM+JSP+EasyUi+mysql)
  6. 【HTML】兴唐二十八节课之常用标签(不定期更新)
  7. 快速学习 async await 的使用, Demo 解析
  8. ant PageHeaderWrapper 返回上一页
  9. Dispatch 执行ABC任务,执行完成之后刷新UI,指定任务D
  10. iOS网络缓存扫盲篇--使用两行代码就能完成80%的缓存需求