商品详情
定价:178.0
ISBN:9787121297182
作者:陈嘉栋、无
版次:1
出版时间:2016-09
内容提要:
本书以Unity 3D的跨平台基础Mono以及其游戏脚本语言C#为基础进行讲解。全面系统地剖析了Unity 3D的跨平台原理以及游戏脚本开发的特点。第1章主要介绍了Unity 3D引擎的历史以及编辑器的基本知识;第2章主要介绍了Mono,以及Unity 3D利用Mono实现跨平台的原理,并且分析了C#语言为何更加适合Unity 3D游戏开发;第3章到第10章主要介绍了Unity 3D游戏脚本语言C#在使用Unity 3D开发过程中的知识点,包括Unity 3D脚本的类型基础、数据结构、在Unity 3D脚本中使用泛型、使用委托和事件打造自己的消息系统、利用定制特性来拓展Unity 3D的编辑器、Unity 3D协程背后的秘密——迭代器以及可空类型和序列化在Unity 3D中使用的相关知识;第11章到第14章,则主要介绍了Unity 3D的资源管理以及优化和编译的内容。
本书是 VR 自学爱好者的一本入门书,全书共 16 章,全面讲述了在制作 VR 应用程序的过程中所必备的软/硬件知识。硬件层面以 HTC VIVE 为主要硬件平台,同时介绍了两款配合其使用的外部设备—— VIVE 追踪器和 Leap Motion;软件层面以制作 VR 应用程序的核心工作流程为主线,以 Unity 为游戏引擎,从 VR 交互原则、材质、UI、编程开发、调试优化等方面逐步展开介绍各工作环节的主要内容。同时,本书辅以丰富的案例项目,重点介绍了 SteamVR、InteractionSystem、VRTK 等必备插件在实际项目中的使用方法,帮助读者快速上手制作属于自己的 VR 应用程序。本书适合对制作 VR 应用程序感兴趣的人员,以及有志于从事 VR 软件开发工作的人员阅读,同时也适合院校及培训虚拟现实机构相关专业的师生参考。
作者简介:
邵伟,Unity 价值专家(UVP),公众号“XR技术研习社”(ID:XRStudy)主理人,现居山东省淄博市,毕业于山东理工大学。淄博木子信息科技有限公司创始人,蛮牛教育特聘高级讲师,著有《HTC VIVE房产项目实战教程》、《HTC VIVE开发实例教程》、《VR写实材质技术实例教程》、《Substance Painter 2018基础实例教程》等视频课程,累计录制视频时长超过3000分钟,线上及线下培训学员总计超2000人,目前专注于VR/AR技术分享工作。李晔:,蛮牛教育讲师,曾从事次世代美术、平面美术、前端程序、策划、责任编辑等多个领域的不同工种,善于对接整合不同阶段的技术需求,曾参与《辐射4》等大型游戏开发。
目录:
第1 章 Hello Unity 3D .............................................................................................................. 1
1.1 Unity 3D 游戏引擎进化史 ................................................................................................ 1
1.2 Unity 3D 编辑器初印象 .................................................................................................... 5
1.2.1 Project 视图 ............................................................................................................................ 5
1.2.2 Inspector 视图......................................................................................................................... 8
1.2.3 Hierarchy 视图 ....................................................................................................................... 9
1.2.4 Game 视图 ............................................................................................................................ 10
1.2.5 Scene 视图 ............................................................................................................................ 12
1.2.6 绘图模式 .............................................................................................................................. 14
1.2.7 渲染模式 .............................................................................................................................. 16
1.2.8 场景视图控制 ...................................................................................................................... 17
1.2.9 Effects 菜单和Gizmos 菜单 ................................................................................................ 18
1.3 Unity 3D 的组成 .............................................................................................................. 18
1.4 为何需要游戏脚本 ......................................................................................................... 20
1.5 本章总结 ......................................................................................................................... 21
第2 章 Mono 所搭建的脚本核心基础 ..................................................................................... 22
2.1 Mono 是什么 ................................................................................................................... 22
2.1.1 Mono 的组成 ........................................................................................................................ 22
2.1.2 Mono 运行时 ........................................................................................................................ 23
2.2 Mono 如何扮演脚本的角色 ........................................................................................... 24
2.2.1 Mono 和脚本 ........................................................................................................................ 24
2.2.2 Mono 运行时的嵌入 ............................................................................................................ 26
2.3 Unity 3D 为何能跨平台?聊聊CIL .............................................................................. 38
2.3.1 Unity 3D 为何能跨平台 ....................................................................................................... 38
2.3.2 CIL 是什么 ........................................................................................................................... 40
2.3.3 Unity 3D 如何使用CIL 跨平台........................................................................................... 44
2.4 脚本的选择,C# 或 JavaScript ...................................................................................... 48
2.4.1 *熟悉的陌生人——UnityScript ........................................................................................ 48
2.4.2 UnityScript 与 JavaScript ..................................................................................................... 51
2.4.3 C#与UnityScript .................................................................................................................. 55
2.5 本章总结 ......................................................................................................................... 57
第3 章 Unity 3D 脚本语言的类型系统 .................................................................................... 58
3.1 C#的类型系统 ................................................................................................................. 58
3.2 值类型和引用类型 ......................................................................................................... 65
3.3 Unity 3D 脚本语言中的引用类型 .................................................................................. 73
3.4 Unity 3D 游戏脚本中的值类型 ...................................................................................... 90
3.4.1 Vector2、Vector3 以及Vector4 .......................................................................................... 90
3.4.2 其他常见的值类型 .............................................................................................................. 94
3.5 装箱和拆箱 ..................................................................................................................... 95
3.6 本章总结 ......................................................................................................................... 98
第4 章 Unity 3D 中常用的数据结构 ....................................................................................... 99
4.1 Array 数组 ..................................................................................................................... 100
4.2 ArrayList 数组 ............................................................................................................... 101
4.3 List<T>数组 .................................................................................................................. 102
4.4 C#中的链表——LinkedList<T> .................................................................................. 103
4.5 队列(Queue<T>)和栈(Stack<T>) ...................................................................... 107
4.6 Hash Table(哈希表)和Dictionary<K,T>(字典) ................................................. 112
4.7 本章总结 ....................................................................................................................... 120
第5 章 在Unity 3D 中使用泛型 ............................................................................................ 121
5.1 为什么需要泛型机制 ................................................................................................... 121
5.2 Unity 3D 中常见的泛型 ................................................................................................ 124
5.3 泛型机制的基础 ........................................................................................................... 127
5.3.1 泛型类型和类型参数 ........................................................................................................ 128
5.3.2 泛型类型和继承 ................................................................................................................ 131
5.3.3 泛型接口和泛型委托 ........................................................................................................ 131
5.3.4 泛型方法 ............................................................................................................................ 136
5.4 泛型中的类型约束和类型推断 .................................................................................... 139
5.4.1 泛型中的类型约束 ............................................................................................................ 139
5.4.2 类型推断 ............................................................................................................................ 144
5.5 本章总结 ....................................................................................................................... 146
第6 章 在Unity 3D 中使用委托 ............................................................................................ 149
6.1 向Unity 3D 中的SendMessage 和BroadcastMessage 说拜拜 .................................... 150
6.2 认识回调函数机制——委托 ........................................................................................ 151
6.3 委托是如何实现的 ....................................................................................................... 154
6.4 委托是如何调用多个方法的 ........................................................................................ 160
6.5 用事件(Event)实现消息系统 .................................................................................. 164
6.6 事件是如何工作的 ....................................................................................................... 169
6.7 定义事件的观察者,实现观察者模式 ........................................................................ 172
6.8 委托的简化语法 ........................................................................................................... 177
6.8.1 不必构造委托对象 ............................................................................................................ 177
6.8.2 匿名方法 ............................................................................................................................ 178
6.8.3 Lambda 表达式 .................................................................................................................. 196
6.9 本章总结 ....................................................................................................................... 201
第7 章 Unity 3D 中的定制特性 ............................................................................................. 202
7.1 初识特性——Attribute ................................................................................................. 202
7.1.1 DllImport 特性 ................................................................................................................... 203
7.1.2 Serializable 特性 ................................................................................................................. 205
7.1.3 定制特性到底是谁 ............................................................................................................ 207
7.2 Unity 3D 中提供的常用定制特性 ................................................................................ 208
7.3 定义自己的定制特性类................................................................................................ 213
7.4 检测定制特性 ............................................................................................................... 216
7.5 亲手拓展Unity 3D 的编辑器 ....................................................................................... 217
7.6 本章总结 ....................................................................................................................... 227
第8 章 Unity 3D 协程背后的迭代器 ..................................................................................... 228
8.1 初识Unity 3D 中的协程 ............................................................................................... 228
8.1.1 使用StartCoroutine 方法开启协程 ................................................................................... 229
8.1.2 使用StopCoroutine 方法停止一个协程 ............................................................................ 233
8.2 使用协程实现延时效果................................................................................................ 234
8.3 Unity 3D 协程背后的秘密——迭代器 ........................................................................ 238
8.3.1 你好,迭代器 .................................................................................................................... 238
8.3.2 原来是状态机 .................................................................................................................... 242
8.3.3. 状态管理 ........................................................................................................................... 248
8.4 WWW和协程 ............................................................................................................... 253
8.5 Unity 3D 协程代码实例 ................................................................................................ 257
8.6 本章总结 ....................................................................................................................... 259
第9 章 在Unity 3D 中使用可空型 ........................................................................................ 260
9.1 如果没有值 ................................................................................................................... 260
9.2 表示空值的一些方案 ................................................................................................... 261
9.2.1 使用魔值 ............................................................................................................................ 261
9.2.2 使用标志位 ........................................................................................................................ 261
9.2.3 借助引用类型来表示值类型的空值 ................................................................................. 265
9.3 使用可空值类型 ........................................................................................................... 267
9.4 可空值类型的简化语法................................................................................................ 272
9.5 可空值类型的装箱和拆箱 ............................................................................................ 278
9.6 本章总结 ....................................................................................................................... 280
第10 章 从序列化和反序列化看Unity 3D 的存储机制 ......................................................... 281
10.1 初识序列化和反序列化.............................................................................................. 281
10.2 控制类型的序列化和反序列化 .................................................................................. 290
10.2.1 如何使类型可以序列化 .................................................................................................. 290
10.2.2 如何选择序列化的字段和控制反序列化的流程 ........................................................... 292
10.2.3 序列化、反序列化中流的上下文介绍及应用 ............................................................... 296
10.3 Unity 3D 中的序列化和反序列化 .............................................................................. 299
10.3.1 Unity 3D 的序列化概览 ................................................................................................... 299
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺