Unity 4x游戏开发技巧集锦第三章.pdf
《Unity 4x游戏开发技巧集锦第三章.pdf》由会员分享,可在线阅读,更多相关《Unity 4x游戏开发技巧集锦第三章.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 Unity 4.x 游戏开发技巧集锦(内部资料)大学霸 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 2 前 言 Unity 是一款世界知名的游戏开发工具,也是一款全面整合的专业游戏引擎。使用 Unity 开发的游戏,可以部署到所有的主流游戏平台,而无需任何修改,如 Windows、Linux、Mac OS X、iOS、Android、Xbox 360、PS3、WiiU 和 Wed 等。据权威机构统计,国内 53.1%的人使用 Unity 进行游戏开发;
2、有 80%的手机游戏是使用 Unity 开发的;苹果应用商店中,有超过 1500 款游戏使用 Unity 开发。强大的工具还需要灵活的应用。现在的游戏种类众多,其中的声光效果更是精彩炫目。作为游戏开发初学者,往往被别人的游戏效果和功能所惊叹,但往往又为自己的游戏所汗颜。本书分析世界各类知名游戏,如仙剑奇侠传、红警、使命召唤、穿越火线、劲舞团、极品飞车、斗地主、植物大战僵尸、天天跑酷等。从这些游戏中选择大量经典应用功能和特效进行讲解,如:极品飞车的后视镜功能 红警警戒的士兵巡逻功能 荣誉勋章的罗盘功能 拳皇的倒计时功能 超级玛丽的消失文字效果 星际争霸的士兵响应效果.相信读者从中学到的将不只是各
3、种特效的实现方法,还会从中感受到无限的成就感和欢乐。1.学习所需的系统和软件学习所需的系统和软件 安装 Windows 7 操作系统 安装 Unity 4.5.2 2.学习建议学习建议 大家学习之前,可以致信到 XXXXXXXXX,获取相关的资料和软件。如果大家在学习过程遇到问题,也可以将问题发送到该邮箱。我们尽可能给大家解决。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 3 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 4 目录 第 1 章 熟悉Unity及其简单操作.1 1.1 安装Unity.1 1.2 编辑器的偏好设置.4 1.3 熟悉Uni
4、ty的编辑器界面.5 1.4 将Unity中的资源保存到预设体中.8 1.5 使用Unity内置的资源包.10 1.6 导入自己的资源.11 1.7 导出Untiy中的资源.11 1.8 导入自己的资源包.12 1.9 添加资源包到资源包列表中.13 1.10 使用Project视图检索器.13 第 2 章 摄像机的应用.15 2.1 设置双游戏视图.15 2.1.1 环境准备.15 2.1.2 编写脚本.16 2.1.3 实现效果.18 2.2 在多个游戏视图间切换.19 2.2.1 环境准备.19 2.2.2 编写脚本.19 2.2.3 实现效果.20 2.3 制作镜头光晕效果.21 2.
5、4 制作游戏的快照.24 2.5 制作一个望远镜.27 2.6 制作一个查看器摄像机.30 2.7 使用忍者飞镖创建粒子效果.34 2.7.1 粒子基本属性.34 2.7.2 粒子的值.34 2.7.3 创建粒子效果.35 2.7.4 了解粒子系统的初始化模块.36 第 3 章 材质的应用.39 3.1 创建反射材质.39 3.2 创建自发光材质.41 3.2.1 创建并配置材质.41 3.2.2 制作应用于发光材质的纹理.42 3.2.3 效果展示.44 3.3 创建部分光滑部分粗糙的材质.45 3.3.1 创建并配置材质.45 3.3.2 制作兼具光滑和粗糙效果的纹理.46 3.3.3 效
6、果展示.47 3.4 创建透明的材质.48 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 5 3.4.1 创建并配置材质.48 3.4.2 制作有透明效果的纹理.48 3.4.3 效果展示.49 3.5 使用cookie类型的纹理模拟云层的移动.50 3.5.1 制作云层效果的纹理.50 3.5.2 在Unity中完成的准备工作.51 3.5.3 编写控制云层移动的脚本.52 3.5.4 效果展示.53 3.6 制作一个颜色选择对话框.53 3.7 实时合并纹理拼脸小示例.56 3.8 创建高亮材质.59 3.9 使用纹理数组实现动画效果.61 3.10 创建一个镂空的材
7、质.64 第 4 章 GUI的应用.67 4.1 绘制一个数字时钟.67 4.2 制作一个模拟时钟.68 4.3 制作一个罗盘.71 4.4 使用雷达说明对象的相对位置.74 4.5 在游戏视图上显示指定数量的纹理.77 4.6 使用不同的纹理表示数值.79 4.7 显示一个数字倒计时.82 4.8 显示一个图片数字倒计时.83 4.9 显示一个饼状图倒计时.85 4.10 逐渐消失的文字信息.88 4.11 显示一个文字财产清单.89 4.12 显示一个图片财产清单.91 4.13 丰富图片清单的内容.93 4.14 允许鼠标滚轮控制滚动条的滚动.96 4.15 使用自定义鼠标取代系统鼠标.
8、98 第 5 章 Mecanim动画系统的应用.102 5.1 给人物模型加Avatar和动画.102 5.1.1 添加Avatar.102 5.1.2 添加动画.104 5.1.3 添加动画控制器.106 5.1.4 人物模型动作效果展示.106 5.1.5 将动画应用于其它的人物模型.107 5.2 自由控制人物模型做各种动作.108 5.2.1 人物模型以及动画属性设置.109 5.2.2 动画控制器的设置添加混合树.111 5.2.3 动画控制器的设置建立过渡.114 5.2.4 创建脚本.116 5.2.5 运行效果展示.118 5.3 动画的融合动画层和身体遮罩.119 5.4 使
9、用脚本代替根动作.124 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 6 5.4.1 根动作的应用.124 5.4.2 脚本代替根动作做出处理.126 5.5 添加道具到人物模型上.132 5.6 配合人物模型的动作来投掷对象.135 5.7 应用布娃娃物理系统的人物模型.139 5.8 旋转人物模型的上半身去瞄准.143 第 6 章 声音的应用.148 6.1 声音音调配合动画播放速度.148 6.2 添加音量控制.152 6.3 模拟隧道里的回声效果.158 6.4 防止音乐片段在播放的过程中重播.161 6.5 音乐播放结束后销毁游戏对象.163 6.6 制作可动
10、态改变的背景音乐.166 第 7 章 外部资源的应用.173 7.1 使用Resources加载外部资源.173 7.2 使用Resources文件夹加载外部资源.177 7.3 使用网址加载外部资源.182 7.4 使用静态属性存储和加载玩家数据.183 7.4.1 一个游戏的雏形.184 7.4.2 给游戏增加玩家数据存储的功能.186 7.5 使用PlayerPrefs存储和加载玩家数据.190 7.6 为游戏添加截图功能.193 第 8 章 TXT和XML文件的应用.197 8.1 使用TextAsset加载外部文本文件.197 8.2 使用C#文件流加载外部文本文件读取数据.198
11、8.3 使用C#文件流加载外部文本文件写入数据.201 8.4 加载并解析外部的XML文件.202 8.5 使用XMLTextWriter创建XML文件中的数据.204 8.6 使用串行化的方式自动创建XML文件中的数据.208 8.7 使用XMLDocument直接创建包含数据的XML文件.212 第 9 章 角色移动和状态切换.215 9.1 由玩家控制对象的移动.215 9.2 控制对象的朝向.219 9.3 控制对象与对象间的相对移动.222 9.3.1 相对移动寻找.222 9.3.2 相对移动靠近对象时减速.227 9.3.3 相对移动保持距离.229 9.4 控制对象群组的移动.
12、231 9.5 控制角色向前投掷物体.236 9.6 控制角色在一个随机的点出现.242 9.7 控制角色在指定点出现.246 9.8 控制角色按照指定路线行进.248 9.9 控制游戏不同状态间的切换.252 9.10 使用多个类来管理游戏的多个状态.255 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 7 第 10 章 完善和优化游戏.260 10.1 让游戏处于暂停状态.260 10.2 让游戏在指定时间内减速运行.263 10.3 使用偏振投影实现 3D立体效果.267 10.4 阻止你的游戏在未知的网站上运行.272 10.5 优化原则:使用代码分析技术查找游戏
13、性能瓶颈.273 10.6 优化原则:减少对象的数量不需要的时候就销毁.277 10.7 优化原则:使用委托和事件提升效率.279 10.8 优化原则:使用协同程序有规律的执行逻辑代码.281 10.9 优化原则:将计算量大的任务分到多个帧执行.282 10.10 优化原则:尽量减少对象和组件的查找.284 第 11 章 Unity收费版提供的功能.290 11.1 让摄像机聚焦不同的对象景深效果.290 11.2 为汽车加后视镜.294 11.3 使用声音过滤器模拟水中的音效.298 11.4 在场景对象上播放视频.301 11.5 在Game视图上播放外部的视频文件.304 Unity 4
14、.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 第 3 章 材质的应用 游戏中,大多数材质的应用都离不开纹理,而纹理本身是图片。所以,在学习本章时,最好在电脑上安装一个可以编辑图片的功能强大的软件,如 Photoshop 和 GIMP。本章使用的是前者。另外,有些纹理需要包含 Transparents 通道,所以图片最好保存成可以存储相应信息的格式,例如,PSD 和 TGA。3.1 创建反射材质 生活中,反射材质(reflective material)的实例有很多。例如,水面、光滑的金属、镜子等物体都可以反射其它的物体,如水中的倒影、镜子里的人物,如图 3-1 所示。图 3-1 图中的
15、金属球,以及反射出的周围环境 在 Unity 里,可以模仿出这种反射效果。只要使用具有反射特性的着色器,然后再稍做配置即可。具体的操作过程如下:(1)准备两张纹理图,其中一张纹理图需要包含透明信息,也就是有 Alpha 通道,然后导入到项目中。本节使用的两张纹理,如图 3-2 所示。普通纹理图包含透明信息的纹理 图 3-2 导入两张纹理图 Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸(2)选中不包含透明信息的纹理,然后在 Inspector 视图里,做如下修改:设置 Texture Type 属性为 Reflection;设置 Mapping 属性为 Cylindrica
16、l;然后单击 Apply 按钮。如此设置,说明了此纹理将被用做圆柱体的反射图。对纹理的设置以及设置后的纹理如图 3-3 所示。图 3-3 在 Inspector 视图对纹理的设置以及设置后的纹理(3)在 Project 视图里,创建一个材质,并命名为 Mat_reflect,选中它然后在 Inspector视图做如下设置:设置 Shader(着色器)属性为 Reflective/Specular;设置 Base(RGB)Gloss(A)为包含透明信息的纹理;设置 Reflection Cubemap 为普通纹理;如图 3-4 所示。图 3-4 在 Inspector 视图里 图 3-5 Sce
17、ne 视图里的 Cylinder 对象(4)在 Hierarchy 视图里,添加 Cylinder 对象。在 Scene 视图里看到的 Cylinder 如图3-5 所示。它此时没有反射出周围的任何物体。(5)拖动 Mat_reflect 材质到 Cylinder 对象上,如图 3-6 所示,效果就大不相同,它即显示出了本身的颜色,又反射出了周围的物体。提示:纹理含有的透明信息,越透明所反射的物体所成的像越清晰。图 3-7,调低透明度以后,反射的图像暗了,清晰度也下降了。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 图 3-6 正在反射出周围物体的 Cylinder 对象
18、 图 3-7 调低透明度以后,反射成像的效果 3.2 创建自发光材质 自发光材质(self-illuminated material)是指自己会发光的材质。生活中与之相似的例子,就是液晶显示屏上显示的信息,文字信息本身是发光的,如图 3-8 所示。图 3-8 自己发光来显示文字信息的液晶显示屏 3.2.1 创建并配置材质 在 Project 视图里,创建一个材质,并命名为 LCDMaterial,选中它然后在 Inspector 视图里修改 Shader 属性为 Self-Illumin/Diffuse,如图 3-9 所示。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 图
19、 3-9 创建材质,并修改材质的 Shader 属性 3.2.2 制作应用于发光材质的纹理 材质配置好了,接下来就该制作纹理了,因为材质需要依靠纹理才能显示信息。本小节就来说明,使用 PhotoShop 制作应用于发光材质的纹理的方法。具体的步骤是:(1)在 PhotoShop 内新建一个纹理,要求是:命名为 LCDText;宽度、高度都设置为 256,单位是像素;分辨率设置为 72,单位是像素/英寸;颜色模式设置为 RGB;如图 3-10 所示。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 图 3-10 新建一个纹理时,初始属性值的设置(2)设置此纹理的背景为黑蓝色(R
20、:8,G:16,B:99),并命名此图层为 background。接着在此纹理上,使用蓝色(R:8,G:90,B:231)写入文字信息,本示例写下的是 LCDText,如图 3-11 所示。图 3-11 黑蓝色背景上写下文字信息的纹理(3)复制 LCDText 和 background 图层,然后分别命名为 AlphaLCDText 和Alphabackground。修改前者的字体颜色为白色,后者的背景色为黑色,如图 3-12 所示。图 3-12 复制图层,并修改各自的颜色(4)合并 LCDText 和 background 图层,以及 AlphaLCDText 和 Alphabackgrou
21、nd 图层,如图 3-13 所示。图 3-13 合并图层(5)选中 AlphaLCDText 图层,然后依次按下 Ctrl+A(全选快捷键)和 Ctrl+C(复制快捷键)。从图层窗口切换到通道窗口,并新建一个通道,默认的名称是 Alpha 1。选中新Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 建的通道后,按下 Ctrl+V(粘贴快捷键),如图 3-14 所示,此过程为纹理添加了透明信息。透明信息的含义是,文本位置处完全透明,背景完全不透明。图 3-14 Alpha 1 通道(6)切换到图层窗口,删除名为 AlphaLCDText 的图层后,含有透明信息的纹理就制作好了。
22、以 PSD 格式保存,并命名为 LCDTexture。3.2.3 效果展示 将上一小节制作的纹理导入到项目中,然后在 Project 视图里选中 LCDMaterial 材质,在Inspector视图里设置材质的Base(RGB)Gloss(A)和Illumin(A)属性为导入的纹理,如图3-15所示。图 3-15 设置材质的纹理属性 此时材质的预览窗口,展示的就是发光字体的显示效果。纹理指定位置越透明,字体越亮;反之,字体会变暗。如图 3-16,对比了字体透明度不同时,发光的效果。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 高透明度的字体低透明度的字体 图 3-16
23、不同透明度字体的发光效果比较 3.3 创建部分光滑部分粗糙的材质 生活中,有类物体的表面既有光滑的部分,又有粗糙的部分,例如丽江的石板路,如图3-17 所示,石板的表面本来是粗糙的,但是在石板上面走的人多了,石板的一部分就变得光滑了。有时,游戏为了显得更加逼真,就需要模拟这样一种材质。图 3-17 兼具光滑和粗糙表面的丽江石板路 要制作部分光滑部分粗糙的材质,需要用到两种资源:拥有镜面着色器的材质和模拟了现实状况的纹理。3.3.1 创建并配置材质 在 Project 视图里,创建一个材质,并命名为 rustyMetalMaterial,选中它然后在 Inspector视图里修改 Shader
24、属性为 Specular,如图 3-18 所示。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 图 3-18 设置材质的 Shader 属性 在此种 Shader 属性下,会出现两个重要的属性:Specular Color:可以调节镜面所反射的光的颜色。Shininess:可以调节镜面所反射的光的强度。3.3.2 制作兼具光滑和粗糙效果的纹理 本小节使用的纹理,模拟的是生了锈的金属表面,部分光滑部分因为有铁锈而显得粗糙,如图 3-19 所示。本小节打算为这个纹理做些简单的修饰:添加透明度的信息;以及在纹理上写些文字,用来衬托出光滑和粗糙位置处的不同效果。图 3-19 拥有生
25、绣的金属表面效果的纹理 使用 PhotoShop 打开此纹理,然后依次做下面的操作:(1)在通道窗口下,新建一个通道,使用默认的名称 Alpha 1。拷贝蓝色通道上的图像到 Alpha 1 通道,并设置 Alpha 1 通道上图像的亮度和对比度,如图 3-20 所示。通过此种方式,设置了这样的透明信息:铁锈处是完全不透明的,而光滑处是完全透明的。Unity 4.x 游戏开发技巧集锦(内部资料) 版权所有 大学霸 图 3-20 设置 Alpha 1 通道上图像的亮度和对比度(2)切换到图层视图,然后为此图像添加黄色的文字,文本内容随意。然后设置文字图层为叠加效果,不透明度为 80%,如图 3-2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity 4x游戏开发技巧集锦第三章 游戏 开发 技巧 集锦 第三
限制150内