实例介绍
Unity脚本设计(全)Unity脚本设计(全)Unity脚本设计(全)Unity脚本设计(全)
Unity脚本设计 [美] Alan thorn著 刘君译 清华大学出版社 北京 内容简介 本书详细阐述了与Uny脚本设计相关的基本解决方案,主要包括 Unity中的C#语言,调试机制,单 例模式、静态模式、 GameObject以及场景世界,事件驱动程序设计,基于高级动画的 Mecanim系统、相 机、渲染和场景,与Mono协同工作,人工智能,与纹理、模型和2D元素协同工作,资源控制等内容, 此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和 参考手册。 Copyright C Packt Publishing 2015. First published in the English language under the title Mastering Unity Scripting Simplified Chinese-language edition 2016 by Tsinghua University Press. All rights reserved 本书中文简体字版由 Packt Publishing授权清华大学出版社独家出版。未经出版者书面许可,不得以任 何方式复制或抄袭本书内容。 北京市版权局著作权合同登记号图字:01-2016-5197 本书封面贴有清华大学出版社防伪标签,无标签者不得销售。 版权所有,侵权必究。侵权举报电话:010-6278298913701121933 图书在版编目(C|P)数据 Unity脚本设计/(美)艾伦·索恩( Alan Thorn)著:刘君译,一北京:清华大学出版社,2016 书名原文: Mastering Unity Scripting ISBN978-7-302-45398-7 Ⅱ.①艾…②刘…Ⅲ.①游戏程序程序设计Ⅳ.①TP317.6 中国版本图书馆CIP数据核字(2016)第260884号 责任编辑:贾小红 封面设计:刘超 版式设计:李会彤 责任校对:赵丽杰 责任印制:何芊 出版发行:清华大学出版社 Ftt:http://www.tup.comcn,http://www.wabook.com 地址:北京清华大学学研大厦A座 邮编:100084 社总机:010-62770175 邮购:010-62786544 投稿与读者服务:010-62776969,C-service@tup.tsinghua.edu.cn 质量反馈:010-62772015,shiliang@tup.tsinghua.edu.cn 印刷者:三河市君旺印务有限公司 装订者:三河市新茂装订有限公司 经销:全国新华书店 开本:185mm×230mm 印张:19.5 字数:403千字 版次:2016年12月第1版 印次:2016年12月第1次印刷 印数:1~3000 定价:69.00元 产品编号:06895201 译者序 Uniy是近几年非常流行的一款3D游戏开发引擎(特别是移动平台),其特点是跨 平台能力强,支持PC、Mac、 Linux、iOS、 Android、网页等几乎所有平台,移植便捷, 3D图形性能出众,为众多游戏开发者所喜爱。在手机平台中, Unity几乎成为3D游戏开 发的标准工具。本书则在此基础上讨论较为高级的开发技术和解决方案。 本书介绍了游戏设计中的某些高级话题和技巧,并通过C#实现Uiy游戏的脚本程 序。书中涵盖了实例特效,并通过C#语言讲解专业级的脚本实例,例如,理解C#语言的 核心组件,包括类基础、接口、单体以及静态对象;实现NPC的人工智能行为;与事件 驱动程序设计协同工作,进而优化代码;深入讨论调试和诊断技术;为后处理效果定制 渲染功能等内容。 除此之外,读者还可以创建具有人工智能特征的游戏角色,针对后处理效果定义相 机渲染,并通过组件结构实现场景管理。为了进一步增加程序的稳定性,本书还深入讨 论了NET类,进而处理数据集,例如CSV文件,以及高级查询操作的运行机制。本书 可有效地提升开发人员的程序设计能力,并帮助程序员熟练地运用其他游戏开发工具箱 在本书的翻译过程中,除刘君之外,郭志杰、白永丽、赵洪玉、米玥、潘冰玉、李 强、皮雄飞、史云龙、王巍、孙年果、程聪、朱利平、王晓晓、解宝香、李保金、王梅、 林芮、刘鹤等也参与了本书的翻译工作,在此一并表示感谢。 限于译者的水平,译文中难免有错误和不妥之处,恳请广大读者批评指正。 译者 前言 针对 Unity中基于C#语言的游戏脚本设计,本书简明、扼要地阐述了这一主题。当 今市场上充斥着大量Uniy的入门书籍和教程,但鲜少以专业、结构化的方式探讨这一相 对高级的话题。本书假设读者已经熟悉了 Unity的基本内容,例如数据资源的导入、关卡 设计、光照贴图以及C#或 JavaScript语言中的脚本机制,通过大量的实例讲述脚本机制 与复杂任务间的应用方式,其中包含了调试方法、人工智能、定制渲染、编辑器扩展动 画和运动行为等。本书的主要目的并非是叙述抽象的原理,以及理论级的操作提示。相 反,本书展示了理论与真实实例之间的实践方法,以帮助读者强化编程技术,进而构建 优化的游戏作品。这里,也建议读者采用概括和抽象相结合的思维方式逐章阅读本书内 容。具体而言,可将每章内容视为特定的实例,以及通用原理的具体描述。最后,读者 可脱离本书的应用环境,并在实际应用中满足具体的需求条件。简而言之,读者不应拘 泥于特定示例以及书中提供的学习用例,而是将相关知识运用于自己的开发项目中。 本书内容 第1章简述了C#语言的基本内容,以及Uny中的脚本机制。尽管本章并未系统、 完整地对此加以介绍,却可帮助读者快速浏览相关知识,或者对其进行简要的回顾。如 果读者已对脚本机制的基本内容有所了解(例如类、继承机制、属性以及多态),则可 略过本章的学习。 第2章深入讨论调试方法。査找并修复错误是编写切实、高效代码不可或缺的技术 之一,这也使得调试操作成为一种重要的技能。本章不仅考察其中涉及的基础内容,还 将分析 MonoDevelop基于界面的调试功能,以及如何构建有效的错误日志系统 第3章介绍游戏对象的访问机制、修改方法以及管理操作。特别地,当构建全局持 久性对象时,还将使用到单例模式,以及其他诸如搜索、表单、排序以及对象排列等技 术。Uniy中的脚本机制依赖于游戏统一场景或坐标系空间内的对象操控行为,进而实现 令人可信的效果。 作为游戏体系结构优化的重要途径,第4章考察事件驱动编程。对于源自更新和频 繁事件造成的重载荷任务,将其转换为事件驱动系统可节省大量的处理时间,进而执行 其他任务。 +IV. Unity脚本设计 第5章将深入探讨相机的工作方式,包括其体系结构的考察方式以及如何定制渲染 结果。除此之外,本章还将考察视锥体测试、剔除操作、视线、正交投影、景深和层以 及后处理效果等内容 第6章将介绍庞大的Mono库及其相关类,包括目录、表、栈以及其他特性和概念, 例如字符串、正则表达式以及Linq。通过本章的阅读,可实现与大量数据间的快速、高 效的协同工作。 第7章将在独立项目中运用前述知识,并对人工智能进行考察,同时将创建一个敌 方角色,进而实现各种行为,其中包括漫游、追逐、巡逻、攻击、逃脱以及搜索能量棒。 在该角色的创建过程中,将涉及视线问题、近似检测以及寻路问题 第8章主要讨论Uniy编辑器,其中涵盖了诸多特性。针对定制编辑器,本章将考察 编辑器类的定义方式,进而实现不同的操作行为以便于更好地工作。另外,本章还将创 建自定义的面板属性,甚至对于多语言间的无缝切换,还将构建一个全功能定位系统。 第9章与2D元素有关,例如精灵对象、纹理以及GUI元素。即使在3D游戏中,2D 元素也扮演了重要的角色,本章将对此制订有效的解决方案。 第10章涵盖了一些综合性的内容,并对某些难以分类的提示与技巧(包括有用的概 念和应用)加以讨论。相关内容对于问题的整体考察十分重要,例如良好的编码实践、 如何编写清晰的代码、数据序列化、资源和版本控制一体化操作等 背景知识 本书内容主要关注 Unity,这也意味着,读者需要获取一份 Unity副本,其中包含了 本书所需的全部内容,例如代码编辑器。读者可访问htp:/uniy3d.com/下载Uniy。作为 独立的应用软件,Uniy支持两种授权许可,即免费版和高级版。其中,免费版本将对某 些特性的访问予以限制,但依然提供了强大的特性集。总体而言,本书大多数章节和示 例均兼容于Uniy免费版。因此,免费版可视为读者的最佳选择。相应地,某些章节和示 例则需要使用高级版本。 适用读者 本书适用于学生、教师,以及熟悉Uniy脚本基础内容的专业人员。无论是初级读者 抑或是高级开发人员,本书均提供了极具价值的信息,以帮助读者提升游戏开发技能。 前言 本书约定 本书涵盖了多种文本风格,进而对不同类型的信息加以区分。下列内容展示了对应 示例及其具体含义。 文本中的代码、数据库表名称、文件名称、文件名、文件扩展名、路径名、伪URL 用户输入以及推特用户名采用如下方式表示: “当构建完毕后,新的脚本文件位于包含cs文件扩展名的 Project文件夹中”。 代码块则通过下列方式设置: 01 using UnityEngine; 02 using System. Collections; 03 04 public class MyNewScript: MonoBehaviour 05 当某些代码行希望引起读者注意时,将会采用黑体表示,如下所示 //We should hide this object if its Y position is above 100 units bool ShouldHideobject (transform position y> 100)? true: false //Update object visibility gameObject. SetActive(! ShouldHideObject)i 图标表示较为重要的概念,而炮图标则表示提示或相关操作技巧。 读者反馈和客户支持 欢迎读者对本书的建议或意见予以反馈,以便进一步了解读者的阅读喜好。反馈意 见对于我们来说十分重要,以便改进我们日后的工作。 对此,读者可向feedback@packtpub.com发送邮件,并以书名作为邮件标题。 若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版 工作,则可阅读www.packtpub.com/authors中的authorguide一栏 对于本书的读者,我们将对每一名用户提供竭诚的服务。 资源下载 读者可访问htp:/www.packtpub.com下载本书中的示例代码文件;或者访间 htp/www.packtpub.com/support,经注册后可直接通过邮件方式获取相关文件。 Unity脚本设计 另外,我们还以PDF文件方式提供了本书中截图/图表的彩色图像,以帮助读者进一 步理解输出结果中的变化,读者可访问htps:/www.packtpub,com/sites/default/files/ onload06550 T ColoredImages pdf下载该PDF文件。 勘误表 尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之 处,无论是文字错误抑或是代码错误,还望不吝赐教。这对于其他读者以及本书的再版 工作,将具有十分重要的意义。对此,读者可访问htp:/ww: packtpub. com/submit-errata, 选取对应书籍,单击 Errata Submission form超链接,并输入相关问题的详细内容。经确 认后,填写的内容将被提交至网站,或添加至现有勘误表中(位于该书籍的 Errata部分)。 另外,读者还可访问htt:/www.packtpub.com/books/content/support查看之前的勘误 表。在搜索框中输入书名后,所需信息将显示于 Errata项中。 版权须知 一直以来,互联网上的版权问题从未间断, Packt出版社对此类问题异常重视。若读 者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以 处理。 关于盗版问题,读者可发送邮件至 copyright(@packtpub, com 对于读者的爱护,我们表示衷心的感谢,并于日后向读者呈现更为精彩的作品。 问题解答 若读者对本书有任何疑问,均可发送邮件至questions(@packtpub.com,我们将竭诚为 您服务。 目录 第1章 Unity中的C#语言 1.1为何选择C#语言 1.2创建脚本文件 1.3脚本的实例化操作 14变量 1.5条件语句… 1.5.1if语句 8 1.52 switch语句 …..10 1.6数组 17循环 16 1.7.1 foreach循环 16 17.2for循环 7 173 while循环 …18 1.7.4无限循环 20 1.8函数.20 19事件 23 1.10类和面向对象程序设计 24 1.11类和继承机制… 26 1.12类和多态 28 1.13C并属性..11132 1.14注释 34 1.15变量的可见性 37 1.16?操作符… 38 1. 17 SendMessage /A BroadcastMessage........38 1.18本章小结 第2章调试机制 ·,,··中 41 2.1编译错误和控制台…. 41 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论