Unity 3D脚本编程:使用C#语言开发跨平台游戏

Unity 3D脚本编程:使用C#语言开发跨平台游戏

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。

作品简介

本书以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脚本编程的新人,还是有一定经验的老手,相信都可以借本书来提高自己在Unity 3D方面的水平。

陈嘉栋,毕业于大连海事大学,目前任光宇在线客户端高级开发工程师。博客园推荐博客作者,微软2015年度Visual Studio and Development Technologies有价值专家(Most Valuable Professional)。认为编程首先是爱好,其次才是职业。专注前沿技术,热爱开源。深信代码改变世界。

作品目录

  1. 推荐序
  2. 前言
  3. 第1章 Hello Unity 3D
  4. 1.1 Unity 3D游戏引擎进化史
  5. 1.2 Unity 3D编辑器初印象
  6. 1.3 Unity 3D的组成
  7. 1.4 为何需要游戏脚本
  8. 1.5 本章总结
  9. 第2章 Mono所搭建的脚本核心基础
  10. 2.1 Mono是什么
  11. 2.2 Mono如何扮演脚本的角色
  12. 2.3 Unity 3D为何能跨平台?聊聊CIL
  13. 2.4 脚本的选择,C#或JavaScript
  14. 2.5 本章总结
  15. 第3章 Unity 3D脚本语言的类型系统
  16. 3.1 C#的类型系统
  17. 3.2 值类型和引用类型
  18. 3.3 Unity 3D脚本语言中的引用类型
  19. 3.4 Unity 3D游戏脚本中的值类型
  20. 3.5 装箱和拆箱
  21. 3.6 本章总结
  22. 第4章 Unity 3D中常用的数据结构
  23. 4.1 Array数组
  24. 4.2 ArrayList数组
  25. 4.3 List<T>数组
  26. 4.4 C#中的链表——LinkedList<T>
  27. 4.5 队列(Queue<T>)和栈(Stack<T>)
  28. 4.6 Hash Table(哈希表)和Dictionary<K,T>(字典)
  29. 4.7 本章总结
  30. 第5章 在Unity 3D中使用泛型
  31. 5.1 为什么需要泛型机制
  32. 5.2 Unity 3D中常见的泛型
  33. 5.3 泛型机制的基础
  34. 5.4 泛型中的类型约束和类型推断
  35. 5.5 本章总结
  36. 第6章 在Unity 3D中使用委托
  37. 6.1 向Unity 3D中的SendMessage和BroadcastMessage说拜拜
  38. 6.2 认识回调函数机制——委托
  39. 6.3 委托是如何实现的
  40. 6.4 委托是如何调用多个方法的
  41. 6.5 用事件(Event)实现消息系统
  42. 6.6 事件是如何工作的
  43. 6.7 定义事件的观察者,实现观察者模式
  44. 6.8 委托的简化语法
  45. 6.9 本章总结
  46. 第7章 Unity 3D中的定制特性
  47. 7.1 初识特性——Attribute
  48. 7.2 Unity 3D中提供的常用定制特性
  49. 7.3 定义自己的定制特性类
  50. 7.4 检测定制特性
  51. 7.5 亲手拓展Unity 3D的编辑器
  52. 7.6 本章总结
  53. 第8章 Unity 3D协程背后的迭代器
  54. 8.1 初识Unity 3D中的协程
  55. 8.2 使用协程实现延时效果
  56. 8.3 Unity 3D协程背后的秘密——迭代器
  57. 8.4 WWW和协程
  58. 8.5 Unity 3D协程代码实例
  59. 8.6 本章总结
  60. 第9章 在Unity 3D中使用可空型
  61. 9.1 如果没有值
  62. 9.2 表示空值的一些方案
  63. 9.3 使用可空值类型
  64. 9.4 可空值类型的简化语法
  65. 9.5 可空值类型的装箱和拆箱
  66. 9.6 本章总结
  67. 第10章 从序列化和反序列化看Unity 3D的存储机制
  68. 10.1 初识序列化和反序列化
  69. 10.2 控制类型的序列化和反序列化
  70. 10.3 Unity 3D中的序列化和反序列化
  71. 10.4 Prefab和实例化之谜——序列化和反序列化的过程
  72. 10.5 本章总结
  73. 第11章 移动平台动态读取外部文件
  74. 11.1 假如我想在编辑器里动态读取文件
  75. 11.2 移动平台的资源路径问题
  76. 11.3 移动平台读取外部文件的方法
  77. 11.4 使用Resources类加载资源
  78. 11.5 使用WWW类加载资源
  79. 11.6 本章总结
  80. 第12章 在Unity 3D中使用AssetBundle
  81. 12.1 初识AssetBundle
  82. 12.2 使用AssetBundle的工作流程
  83. 12.3 如何使用本地磁盘中的AssetBundle文件
  84. 12.4 AssetBundle文件的平台兼容性
  85. 12.5 AssetBundle如何识别资源
  86. 12.6 本章总结
  87. 第13章 Unity 3D优化
  88. 13.1 看看Unity 3D优化需要从哪里着手
  89. 13.2 CPU方面的优化
  90. 13.3 对GPU的优化
  91. 13.4 内存的优化
  92. 13.5 本章总结
  93. 第14章 Unity 3D的脚本编译
  94. 14.1 Unity 3D脚本编译流程概览
  95. 14.2 JIT即时编译
  96. 14.3 AOT提前编译
  97. 14.4 谁偷了我的热更新?Mono、JIT还是iOS
  98. 14.5 Unity 3D项目的编译与发布
  99. 14.6 本章总结