新書推薦:
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:NT$
602.0
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:NT$
352.0
《
南方谈话:邓小平在1992
》
售價:NT$
367.0
《
纷纭万端 : 近代中国的思想与社会
》
售價:NT$
500.0
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:NT$
765.0
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
《
以爱为名的支配
》
售價:NT$
286.0
編輯推薦:
1. 微软MVP张善友倾情作序,力荐本书。
2. 本书作者是2015年微软MVP,博客园推荐博客博主,在游戏蛮牛及InfoQ网站发表过多篇文章。
3. 本书以Unity 3D的跨平台基础Mono及其游戏脚本语言C#为基础进行讲解,全面系统地剖析了Unity 3D的跨平台原理以及游戏脚本开发的特点。
4. 无论是初次接触Unity 3D脚本编程的新人,还是有一定经验的老手,相信都可以借本书来提高自己在Unity 3D 方面的水平。
內容簡介:
本书以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的资源管理以及优化和编译的内容。
關於作者:
本书的作者陈嘉栋长期关注Unity 3D、Mono以及C#语言,并且在博客园、游戏蛮牛以及InfoQ网站以“慕容小匹夫”的笔名发表过多篇博客和文章,更是在2015年获得了微软最有价值专家(MVP)的称号。
目錄 :
第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 类型推断 ......................................................................................................
內容試閱 :
推荐序
Unity 3D 是由两个具有巨大吸引力而极其令人愉悦的领域混合而成的C#语言和游戏开发。Unity 团队设计Unity 3D 将这两者有机地结合起来。
对于C#语言的喜爱要回溯至2000 年,当时微软向世界推出了新的语言C#,不仅震惊了Windows 领域,它同时也震惊了开源世界。GNOME 项目的领导者Meguel de Icaza 就看到了C#语言在桌面开发的前景,着手创建了开源的.NET 跨平台实现Mono,如今Mono 已经用于从嵌入式系统到服务器、工业控制、移动开发和游戏的所有方面。.NET 语言不仅确保了我们不再受限于某一种当下的语言,而且确保了我们可以继续重用之前使用C 和C 编写的现有代码,C#使我们和我们所处的世界更加高效。随着微软成立.NET 基金会,大力发展开源跨平台的.NET,同时Unity 公司也是.NET 基金会成员,我们有理由相信使用C#的Unity 3D 平台也会发展得更好。
正如Unity Technologies 的CEO David Helgason 先生所说:Unity 是一个用来构建游戏的工具箱,它整合了图像、音频、物理引擎、人机交互以及网络等技术。Unity 3D 因为它的快速开发以及跨平台能力而为人所知。Unity 3D 的快速开发和跨平台能力正是来自于它对Mono平台和C#语言的依赖,使用CC 来编写高性能要求的引擎代码,针对开发人员采用高级的C#、UnityScript、Boo 语言作为游戏开发的脚本。
本书作者陈嘉栋带着激情投身于Unity 游戏开发,他在Unity 社区也非常活跃,他也通过博客写了大量和Unity 3D 相关的文章,如今他将这些在社区上的贡献汇集成这样一个涉及Unity 3D 跨平台原理分析、Unity 3D 和Mono 的结合,以及在游戏脚本编程中使用C#语言的作品。希望无论是初次接触Unity 3D 脚本编程的新人,还是有一定经验的老手都能对Unity 3D 了解得更全面深刻,对C#语言在开发游戏脚本过程中的知识点掌握得更牢固,写出更高效的代码。
使用C#和Unity 3D 构建游戏是一件极佳的事情。你能够使用一种强类型的、类型安全的、垃圾回收的、具有最热门API 的语言来开发游戏,下面开始学习陈嘉栋创作的这本佳作吧!
微软MVP 张善友
2016.7.13 书于 深圳