- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unity .x实战开发指南.doc
第5章 相 机
本章主要涉及以下内容:
生成画中画效果。
在多部相机之间进行切换。
根据屏幕内容生成纹理。
相机放大效果。
显示小型地图。
创建游戏中的监视相机。
5.1 简 介
作为开发人员,应对相机对象给予足够的重视,这也是玩家查看游戏的窗口。本章介绍相机的多种应用方式,进而增强玩家的游戏体验。
对此,可通过多种方式定义相机,其中包括:
剔除特定层上的渲染对象。
可设置为正交模式渲染(也就是说,不包含透视效果)。
可包含相应的视域(FOV)以模拟广角镜头。
可在其他相机上方,或者在屏幕的特定区域内进行渲染。
可渲染至纹理中。
当然,相关内容可能远不止于此。图5.1显示了两个同步相机视图。
需要注意的是,在本章中的某些方案中,相机还可跟随玩家的第三人称角色运动,即Unity中的Multipurpose Camera Rig,该相机最初源自Unity中的示例程序,并可通过Assets | Import Package | Camera菜单导入至项目中。为了简化操作,可将包含该项内容的MultipurposeCamera Unity Package制作为预置组件,该组件位于1362_05_codes文件夹中。
图5.1
5.2 生成画中画效果
在某些时候,多个视口显示将十分有用。例如,用户需要显示不同位置处的多个同步事件;或者需要显示多人游戏中的某个独立窗口。尽管可调整相机的Normalized Viewport Rect参数并采用手动方式实现这一功能,但当前方案采用一系列的偏好设置,进而可独立于用户的显示设置。
准备工作
当前方案将采用Unity中的BasicScene资源包,其中包含了名为BasicScene的场景。该资源包位于1362_05_codes文件夹内。
实现方式
当创建画中画效果时,需要执行下列操作步骤:
(1)向当前项目中导入BasicScene资源包。
(2)在Project视图中,打开BasicScene关卡,该基本场景包含了动画角色以及某些附加的几何对象。
(3)通过Hierarchy视图上方的Create下拉菜单,可向场景中添加新的相机对象(Create | Camera)。
(4)选择创建完毕的相机,在Inspector视图中,将其Depth值调整至1,如图5.2所示。
图5.2
(5)在Project视图中,创建新的C#脚本文件,并将其重命名为PictureInPicture。
(6)打开脚本文件,并利用下列代码替换原有内容:
using UnityEngine;
public class PictureInPicture: MonoBehaviour {
public enum hAlignment{left, center, right};
public enum vAlignment{top, middle, bottom};
public hAlignment horAlign = hAlignment.left;
public vAlignment verAlign = vAlignment.top;
public enum UnitsIn{pixels, screen_percentage};
public UnitsIn unit = UnitsIn.pixels;
public int width = 50;
public int height= 50;
public int xOffset = 0;
public int yOffset = 0;
public bool update = true;
private int hsize, vsize, hloc, vloc;
void Start (){
AdjustCamera ();
}
void Update (){
if(update)
AdjustCamera ();
}
void AdjustCamera(){
int sw = Screen.width;
int sh = Screen.height;
float swPercent = sw * 0.01f;
float shPercent = sh * 0.01f;
float xOffPercent = xOffset * swPercent;
float yOffPercent = yOffset * shPercent;
int xOff;
int yOff;
if(unit == UnitsIn.screen_percentage){
hsize = wid
您可能关注的文档
- 太原汽车音响改装店--宝马X改装案例.doc
- 煤矿安全质量标准化基本要求及评分方法(试行)2017年5月1日起执行.doc
- 幼教论文《农村幼儿园教育小学化倾向的现状调查和应用策略》.doc
- 2015年辽宁省装配钳工考试试题.doc
- 全面推进学校素质教育 努力打造英山教育品牌(完整版).doc
- 将此文章献给不信佛教甚至排斥佛教的人们(This article is dedicated to don't believe in Buddhism even rejected Buddhism people).doc
- day-jdbc入门_计算机软件及应用_it计算机_专业资料.docx
- 小学班主任研修日志(篇).doc
- 掌上营业厅服务蓝图设计.doc
- 青年教师成长计划 青年教师成长计划.doc
最近下载
- 宜家产品数字化交互体验设计研究--以家具产品互动光影体验设计为例.pdf VIP
- 部编语文五年级下册第三单元《猜字谜》ppt课件.pptx
- 重症肌无力护理查房PPT课件.pptx VIP
- 管壳式换热器的建模换热计算和CFD模拟资料.doc
- 中学小学幼儿园托儿所膳食监督家长委员会职责及工作制度12篇.docx VIP
- 《2023年全国职业院校技能大赛赛项GZ079 商务数据分析赛题第B套》.pdf VIP
- 《2023年全国职业院校技能大赛赛项GZ079 商务数据分析赛题第A套》.pdf VIP
- 《南陵别儿童入京》鉴赏.pptx
- 田园曲声乐正谱钢琴伴奏五线谱柏辽兹.pdf VIP
- +第二单元第一课《观照自然》课件2024-2025学年人美版(2024)初中美术七年级下册.pptx VIP
文档评论(0)