万本电子书0元读

万本电子书0元读

顶部广告

Unity3D脚本编程:使用C#语言开发跨平台游戏电子书

1. 微软MVP张善友倾情作序,力荐本书。 2. 本书作者是2015年微软MVP,博客园推荐博客博主,在游戏蛮牛及InfoQ网站发表过多篇文章。 3. 本书以Unity 3D的跨平台基础Mono及其游戏脚本语言C#为基础行讲解,全面系统地剖析了Unity 3D的跨平台原理以及游戏脚本发的特。 4. 无论是初次触Unity 3D脚本编程的新人,还是有一定经验的老手,相信都可以借本书来提高自己在Unity 3D 方面的水平。

售       价:¥

纸质售价:¥58.80购买纸书

1265人正在读 | 1人评论 6.6

作       者:陈嘉栋

出  版  社:电子工业出版社

出版时间:2016-09-01

字       数:31.8万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
      本书以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的资源管理以及优化和编译的内容。<br/>【推荐语】<br/>1. 微软MVP张善友倾情作序,力荐本书。 2. 本书作者是2015年微软MVP,博客园推荐博客博主,在游戏蛮牛及InfoQ网站发表过多篇文章。 3. 本书以Unity 3D的跨平台基础Mono及其游戏脚本语言C#为基础行讲解,全面系统地剖析了Unity 3D的跨平台原理以及游戏脚本发的特。 4. 无论是初次触Unity 3D脚本编程的新人,还是有一定经验的老手,相信都可以借本书来提高自己在Unity 3D 方面的水平。<br/>【作者】<br/>      陈嘉栋,毕业于大连海事大学,目前任光宇在线客户端高级发工程师。博客园推荐博客作者,微软2015年度Visual Studio and Development Technologies有价值专家(Most Valuable Professional)。认为编程首先是爱好,其次才是职业。专注前沿技术,热爱源。深信代码改变世界。       没有值得吹嘘的项目,只有不断前行的动力。<br/>
目录展开

内容简介

推荐序

前言

第1章 Hello Unity 3D

1.1 Unity 3D游戏引擎进化史

1.2 Unity 3D编辑器初印象

1.2.1 Project视图

1.2.2 Inspector视图

1.2.3 Hierarchy视图

1.2.4 Game视图

1.2.5 Scene视图

1.2.6 绘图模式

1.2.7 渲染模式

1.2.8 场景视图控制

1.2.9 Effects菜单和Gizmos菜单

1.3 Unity 3D的组成

1.4 为何需要游戏脚本

1.5 本章总结

第2章 Mono所搭建的脚本核心基础

2.1 Mono是什么

2.1.1 Mono的组成

2.1.2 Mono运行时

2.2 Mono如何扮演脚本的角色

2.2.1 Mono和脚本

2.2.2 Mono运行时的嵌入

2.3 Unity 3D为何能跨平台?聊聊CIL

2.3.1 Unity 3D为何能跨平台

2.3.2 CIL是什么

2.3.3 Unity 3D如何使用CIL跨平台

2.4 脚本的选择,C# 或 JavaScript

2.4.1 最熟悉的陌生人——UnityScript

2.4.2 UnityScript 与 JavaScript

2.4.3 C#与UnityScript

2.5 本章总结

第3章 Unity 3D脚本语言的类型系统

3.1 C#的类型系统

3.2 值类型和引用类型

3.3 Unity 3D脚本语言中的引用类型

3.4 Unity 3D游戏脚本中的值类型

3.4.1 Vector2、Vector3以及Vector4

3.4.2 其他常见的值类型

3.5 装箱和拆箱

3.6 本章总结

第4章 Unity 3D中常用的数据结构

4.1 Array数组

4.2 ArrayList数组

4.3 List<T>数组

4.4 C#中的链表——LinkedList<T>

4.5 队列(Queue<T>)和栈(Stack<T>)

4.6 Hash Table(哈希表)和Dictionary<K,T>(字典)

4.7 本章总结

第5章 在Unity 3D中使用泛型

5.1 为什么需要泛型机制

5.2 Unity 3D中常见的泛型

5.3 泛型机制的基础

5.3.1 泛型类型和类型参数

5.3.2 泛型类型和继承

5.3.3 泛型接口和泛型委托

5.3.4 泛型方法

5.4 泛型中的类型约束和类型推断

5.4.1 泛型中的类型约束

5.4.2 类型推断

5.5 本章总结

第6章 在Unity 3D中使用委托

6.1 向Unity 3D中的SendMessage和BroadcastMessage说拜拜

6.2 认识回调函数机制——委托

6.3 委托是如何实现的

6.4 委托是如何调用多个方法的

6.5 用事件(Event)实现消息系统

6.6 事件是如何工作的

6.7 定义事件的观察者,实现观察者模式

6.8 委托的简化语法

6.8.1 不必构造委托对象

6.8.2 匿名方法

6.8.3 Lambda表达式

6.9 本章总结

第7章 Unity 3D中的定制特性

7.1 初识特性——Attribute

7.1.1 DllImport特性

7.1.2 Serializable特性

7.1.3 定制特性到底是谁

7.2 Unity 3D中提供的常用定制特性

7.3 定义自己的定制特性类

7.4 检测定制特性

7.5 亲手拓展Unity 3D的编辑器

7.6 本章总结

第8章 Unity 3D协程背后的迭代器

8.1 初识Unity 3D中的协程

8.1.1 使用StartCoroutine方法开启协程

8.1.2 使用StopCoroutine方法停止一个协程

8.2 使用协程实现延时效果

8.3 Unity 3D协程背后的秘密——迭代器

8.3.1 你好,迭代器

8.3.2 原来是状态机

8.3.2.1 IEnumerator的内部实现

8.3.2.2 IEnumerator与IEnumerable

8.3.3 状态管理

8.3.3.1 状态切换

8.4 WWW和协程

8.5 Unity 3D协程代码实例

8.6 本章总结

第9章 在Unity 3D中使用可空型

9.1 如果没有值

9.2 表示空值的一些方案

9.2.1 使用魔值

9.2.2 使用标志位

9.2.3 借助引用类型来表示值类型的空值

9.3 使用可空值类型

9.4 可空值类型的简化语法

9.5 可空值类型的装箱和拆箱

9.6 本章总结

第10章 从序列化和反序列化看Unity 3D的存储机制

10.1 初识序列化和反序列化

10.2 控制类型的序列化和反序列化

10.2.1 如何使类型可以序列化

10.2.2 如何选择序列化的字段和控制反序列化的流程

10.2.3 序列化、反序列化中流的上下文介绍及应用

10.3 Unity 3D中的序列化和反序列化

10.3.1 Unity 3D的序列化概览

10.3.2 对Unity 3D游戏脚本进行序列化的注意事项

10.3.3 如何利用Unity 3D提供的序列化器对自定义类型进行序列化

10.4 Prefab和实例化之谜——序列化和反序列化的过程

10.4.1 认识预制体Prefab

10.4.2 实例化一个游戏对象

10.4.3 序列化和反序列化之谜

10.5 本章总结

第11章 移动平台动态读取外部文件

11.1 假如我想在编辑器里动态读取文件

11.2 移动平台的资源路径问题

11.3 移动平台读取外部文件的方法

11.4 使用Resources类加载资源

11.5 使用WWW类加载资源

11.5.1 利用WWW类的构造函数实现资源下载

11.5.2 利用 WWW.LoadFromCacheOrDownload方法实现资源下载

11.5.3 利用WWWForm类实现POST请求

11.6 本章总结

第12章 在Unity 3D中使用AssetBundle

12.1 初识AssetBundle

12.2 使用AssetBundle的工作流程

12.2.1 开发阶段

12.2.2 运行阶段

12.3 如何使用本地磁盘中的AssetBundle文件

12.4 AssetBundle文件的平台兼容性

12.5 AssetBundle如何识别资源

12.6 本章总结

第13章 Unity 3D优化

13.1 看看Unity 3D优化需要从哪里着手

13.2 CPU方面的优化

13.2.1 对DrawCall的优化

13.2.2 对物理组件的优化

13.2.3 处理内存,却让CPU受伤的GC

13.2.4 对代码质量的优化

13.3 对GPU的优化

13.3.1 减少绘制的数目

13.3.2 优化显存带宽

13.4 内存的优化

13.4.1 Unity 3D的内部内存

13.4.2 Mono的托管内存

13.5 本章总结

第14章 Unity 3D的脚本编译

14.1 Unity 3D脚本编译流程概览

14.2 JIT即时编译

14.2.1 使用编译器将游戏脚本编译为托管模块

14.2.2 托管模块和程序集

14.2.3 使用JIT编译执行程序集的代码

14.2.4 使用JIT即时编译的优势

14.3 AOT提前编译

14.3.1 在Unity 3D中使用AOT编译

14.3.2 iOS平台和Full-AOT编译

14.3.3 AOT编译的优势

14.4 谁偷了我的热更新?Mono、JIT还是iOS

14.4.1 从一个常见的报错说起

14.4.2 美丽的JIT

14.4.3 模拟JIT的过程

14.4.4 iOS平台的自我保护

14.5 Unity 3D项目的编译与发布

14.5.1 选择游戏场景和目标平台

14.5.2 Unity 3D发布项目的内部过程

14.5.3 Unity 3D部署到Android平台

14.5.4 Unity 3D部署到iOS平台

14.6 本章总结

累计评论(1条) 2个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部