具体描述
《Unity游戏开发实战》结合unity这种多平台的集成引擎和编辑器,介绍如何使用unity创建游戏、添加交互性,以及修饰游戏并发布游戏的所有知识。《Unity游戏开发实战》分为五部分,每一章都介绍一个独立的概念,并且循序渐进地讲述新的概念,还使用一个综合的游戏项目贯穿全书。在《Unity游戏开发实战》中,读者将学到所有重要的界面命令,如何设置和组织项目,以及创建并运行一个3D游戏的所有基础,从角色导入到脚本,再到声音。《Unity游戏开发实战》还将介绍基本的游戏和关卡设计理论与特殊的技巧。
作者简介
目录信息
作者简介
第一部分 入门
第1章 序
第2章 前言
2.1 本书主要内容
2.2 本书读者对象
2.3 本书结构
2.4 安装说明
2.4.1 Unity引擎
2.4.2 使用光盘里的内容
2.4.3 可选安装
第3章 Unity引擎概览
3.1 熟悉界面
3.1.1 Project视图
3.1.2 Hierarchy视图
3.1.3 Inspector视图
3.1.4 工具栏
3.1.5 Scene视图
3.1.6 Game视图
3.1.7 Animation视图
3.1.8 控制台和状态栏
3.1.9 性能分析器和资源服务器
3.1.10 定制编辑器
3.2 Unity的基本概念
3.3 可用的Unity许可证
3.4 编辑器小结
第4章 第一款游戏:从哪里开始
4.1 基本设计理论
4.2 找到核心思想
4.2.1 头脑风暴
4.2.2 研究其他的游戏
4.2.3 纸面原型:这并不仅仅适用于商业软件
4.3 进行计划
4.3.1 基本的大纲
4.3.2 一个简单的关卡文档
4.4 开始
第二部分 收集游戏资源
第5章 用地形搭建舞台
5.1 Unity的地形引擎
5.2 定制地形
5.2.1 使用高度图来创建高度
5.2.2 使用笔刷来绘制高度
5.2.3 绘制贴图
5.2.4 放置树木
5.2.5 使用草以及细节网格让场景变得更为散乱
5.2.6 地形设置
5.3 光照和阴影
5.4 添加天空盒和基于距离的雾化效果
5.5 在地形上加入水体
第6章 创建环境:导入基本的定制资源
6.1 先设计,后创建
6.2 导入贴图
6.2.1 关于导入的更多细节
6.2.2 支持的格式
6.2.3 为《Widget》的地形导入贴图
6.3 导入基本网格
6.4 设置简单的着色器和材质
6.4.1 Unity提供的着色器
6.4.2 凹凸贴图、高光贴图、立方环境贴图和细节贴图
6.4.3 指定着色器和材质
6.4.4 创建一种定制的天空盒材质
6.4.5 添加水体
6.5 使用资源时的有用技巧
6.5.1 预制模型
6.5.2 大规模对象选择和分组
6.5.3 根据网格对齐
6.5.4 重做地形
第7章 创建角色
7.1 玩家角色基础101
7.2 导入角色以及其他非静态网格
第三部分 用交互性使道具更逼真
第8章 Unity中的脚本编程
8.1 一个编辑器、三种语言、大量的选择
8.2 选择一个脚本编辑器,你是否想要它实现自动完成
8.3 Unity脚本编程基础
8.4 运算符和比较
8.4.1 运算符
8.4.2 比较
8.5 条件
8.5.1 if语句
8.5.2 if-else语句
8.5.3 switch语句
8.5.4 条件运算符
8.6 循环
8.6.1 for循环
8.6.2 while循环
8.7 函数
8.8 命名约定
第9章 编写角色和状态控制脚本
9.1 计划和设计
9.2 一个简单的第三人称控制器
9.2.1 控制器变量
9.2.2 Unity的MonoBehaviour类
9.2.3 FixedUpdate:让Widget移动
9.3 设置Unity的输入管理器
9.3.1 Input类回顾
9.3.2 轴的命名约定
9.3.3 Xbox风格控制器的设置示例
9.4 连接摄像机
9.5 装配状态控制器
9.5.1 协程
9.5.2 更新角色控制器
9.6 完整的脚本
9.6.1 Widget_Controller.js
9.6.2 Widget_Status.js
9.6.3 Widget_Camera.js
第10章 连接动画
10.1 Unity中的动画
10.2 动画API
10.3 设置玩家控制器的动画
10.3.1 定义问题
10.3.2 更新控制器
10.3.3 创建动画状态管理器
10.4 在Unity内部创建动画
10.4.1 一些基本概念
10.4.2 Animation视图
10.5 设置一段新的动画剪辑
10.5.1 创建定制动画
10.5.2 连接
10.6 添加动画事件
10.7 完整的脚本
10.7.1 Widget_Controller.js更新
10.7.2 Widget_Animation.js
第11章 使用触发器并创建环境交互
11.1 触发器和碰撞
11.2 设置一个简单的触发器对象
11.2.1 为了清晰而使用gizmo
11.2.2 背囊管理
11.3 设置其他类型的触发器
11.3.1 死亡触发器
11.3.2 检查点——避免死亡的触发器
11.4 完成的脚本
11.4.1 PickupItems.js
11.4.2 Widget_Inventory.js
11.4.3 DamageTrigger.js
11.4.4 CheckPoint.js
11.4.5 Widget_Status.js
第12章 创建探险和AI
12.1 人工智能:绝对人工、没多少智能
12.1.1 一些简单的AI指导方针
12.1.2 简单的工作流
12.2 设置一个简单的敌人
12.2.1 AI控制器
12.2.2 为一只简单的小兔子编写的简单的状态管理器
12.3 设置Widget的攻击
12.4 在完成任务后奖励玩家
12.5 产生和优化
12.6 完整代码
12.6.1 EBunny_AIController.js
12.6.2 EBunny_Status.js
12.6.3 Widget_AttackController.js
12.6.4 Enemy_RespawnPoint.js
第13章 设计游戏的GUI
13.1 基本的界面理论
13.1.1 交互的步骤
13.1.2 为用户设计
13.2 Unity的GUI系统
13.2.1 按钮
13.2.2 滑块
13.2.3 标签和框
13.2.4 文本输入
13.2.5 Toggle
13.2.6 工具栏和选择矩阵
13.2.7 窗口
13.3 为Widget制作定制的皮肤
13.3.1 创建GUISkin
13.3.2 定义定制风格
13.3.3 导入新字体
13.4 设置HUD
13.4.1 GUIContent
13.4.2 角色显示
13.4.3 分辨率
13.5 弹出屏幕示例
13.6 添加全屏菜单
13.7 完整和更新的脚本
13.7.1 GUI_CustomControls.js
13.7.2 GUI_HUD.js
13.7.3 Widget_AttackController.js
13.7.4 EBunny_Status.js
13.7.5 GUI_WaypointStore.js
13.7.6 WaypointBehavior.js
13.7.7 GUI_MainMenu.js
第四部分 完善和最后的修饰
第14章 创建光影
14.1 灯光的类型
14.1.1 光源属性
14.1.2 光照基础
14.2 照亮游戏世界
14.3 创建阴影
14.3.1 光照图
14.3.2 使用阴影投射器制作的阴影
14.4 其他光照效果
14.4.1 镜头眩光
14.4.2 遮光
第15章 使用粒子系统
15.1 粒子:从烟到星尘
15.2 设置一个简单的系统
15.2.1 粒子发射器
15.2.2 粒子动画器
15.2.3 粒子渲染器和材质
15.3 高级粒子组件
15.3.1 世界粒子碰撞体
15.3.2 拖尾渲染器
15.3.3 线条渲染器
15.4 Widget的粒子
15.4.1 拾取物品
15.4.2 检查点激活
15.4.3 Widget的攻击
15.4.4 敌人爆炸
15.5 更新的脚本
15.5.1 PickupItems.js
15.5.2 CheckPoint.js
15.5.3 Widget_AttackController.js
15.5.4 EBunny_Status.js
第16章 加入声音和音乐
16.1 反馈和环境
16.2 设置一段简单的声音剪辑
16.2.1 环境音效
16.2.2 通过脚本控制声音
16.2.3 加入背景音乐
16.3 更新的脚本
第五部分 发行和发布版本
第17章 基本的Unity调试和优化
17.1 Unity中的调试
17.1.1 Console
17.1.2 日志文件
17.2 优化
17.2.1 Profiler
17.2.2 基本代码优化
17.2.3 模拟
17.2.4 渲染Statistics页面
17.2.5 压缩文件
17.2.6 优化图形的其他方式
第18章 创建最终版本
18.1 准备版本
18.1.1 设置播放器
18.1.2 设置Application类
18.1.3 版本设置
18.2 其他版本特性
18.2.1 新的资源和DLC
18.2.2 打包资源以便今后使用
18.3 展望
· · · · · · (收起)
读后感
用户评价
这本书的封面设计着实抓人眼球,那种霓虹灯般的色彩搭配和充满科技感的字体,让人一看就知道这是一本关于前沿技术的好书。我最近一直在寻找一本能让我系统性地梳理现有游戏开发知识,并引入一些新颖工作流的参考资料,这本恰好瞄准了我的需求。从我翻阅的前几页来看,作者似乎非常注重理论与实践的结合,并没有陷入那种空泛的理论说教,而是紧密围绕着实际项目中的痛点来展开讨论。特别是关于性能优化那几个章节的目录标题,它们听起来就充满了实战的味道,比如“场景加载的异步处理策略”和“内存管理的精细化控制”。我尤其期待看到作者是如何讲解如何利用最新的渲染管线特性来提升视觉效果,同时又不牺牲移动平台上的运行效率。这本书的排版清晰,图文并茂,即使是复杂的技术概念,通过作者精心绘制的流程图也能变得一目了然。对于我这种希望快速将新学到的知识应用到实际项目中的开发者来说,这种注重实操的编排方式无疑是最受欢迎的。我感觉它不仅仅是一本教科书,更像是一位经验丰富的同行在旁边手把手地指导,分享那些只有在真实项目中摸爬滚打多年才能积累下来的“小窍门”。
与市面上其他一些技术书籍相比,这本书在“工程化”方面做得尤为出色,它不仅仅停留在代码层面,还触及到了整个开发流程的管理与规范。比如,它可能讨论了如何搭建一个高效的持续集成/持续部署(CI/CD)流水线,将编译、测试和打包流程自动化。对于一个团队来说,工具链的效率直接决定了产出速度。我尤其关注它是否提供了关于版本控制策略(如Git Flow在游戏开发中的特殊应用)的建议。优秀的开发者不仅要会写代码,更要懂得如何与团队协作,如何保证代码库的健康。这本书的出现,仿佛在提醒我们,游戏开发是一项系统工程,任何一个环节的松懈都可能导致最终产品的失败。它提供的视角是宏观的,是站在项目经理或者技术主管的高度去审视开发过程,这对于我这种希望提升自己综合技术管理能力的人来说,无疑是一份宝贵的指引,让我能更好地理解一个商业项目背后的运作逻辑。
这本书的选材广度令人印象深刻,它似乎涵盖了从2D独立游戏到大型3D项目的诸多方面,这一点从其对不同资源管理模块的介绍中就能体现出来。我特别欣赏作者在叙述UI系统设计时所采取的解耦思路。现在很多项目都陷入了“意大利面条式”的UI代码困境,而这本书似乎提供了一条优雅的出路,它可能倡导了一种基于事件驱动或MVVM(Model-View-ViewModel)的结构化方法来管理复杂的用户交互界面。这种前瞻性的设计理念,对于长期维护和迭代项目至关重要。我希望能看到书中对AssetBundle打包策略的详细论述,尤其是在灰度发布和热更新场景下,如何平衡包体大小与下载速度。好的资源管理方案是决定项目能否持续运营的关键,而这本书似乎在这一块也投入了足够的笔墨,这让我对它的整体价值更加看好,因为它关注的不仅仅是“如何实现一个功能”,更是“如何以一种专业且可持续的方式实现一个功能”。
我花了周末一整天时间沉浸在这本书的某个章节中,那个关于多人联机架构的剖析简直是教科书级别的示范。它没有停留在简单的Socket编程层面,而是深入探讨了网络同步中的延迟补偿、状态预测以及回滚等高级议题,并且针对性地给出了几种不同复杂度的实现方案对比。作者的写作风格非常严谨,每一个公式的引入都有其明确的物理或数学依据,这对于追求技术深度的人来说是极大的福音。我发现自己经常需要暂停阅读,拿起笔来对照着书中的伪代码和逻辑图重新梳理一遍,以确保完全理解了其中关于客户端服务器状态一致性的处理机制。这种需要“动脑子”去消化的内容,恰恰是我认为一本优秀技术书籍的标志。它迫使你离开舒适区,去面对那些在实际工作中常常被敷衍过去的关键技术难点。读完这一部分,我对构建一个健壮、可扩展的在线游戏后端有了全新的认识,不再是简单的拼凑,而是有了一套清晰的设计哲学作为指导。
翻到最后几章,我注意到作者似乎加入了一些关于“未来趋势”和“进阶探索”的内容,这往往是区分一本“合格”书籍和一本“优秀”书籍的关键所在。我非常期待看到作者对新兴技术,比如机器学习在游戏AI中的应用,或者更高效的脚本语言集成方案的探讨。这些“野心勃勃”的内容,能让这本书的保质期大大延长,避免了技术书籍因更新过快而迅速过时的命运。它没有满足于停留在当前主流技术的介绍,而是试图引导读者去思考下一个五年游戏开发可能会走向何方。这种对前沿的嗅觉和对未来的布局,让阅读过程充满了探索的乐趣,仿佛在跟着一位行业领航员进行一次深度的考察。总的来说,这本书展现出一种全面的、注重深度和前瞻性的编写风格,它不仅是解决当下问题的工具箱,更是一份能陪伴开发者长期成长的技术宣言。
内容不错 就是现在unity3d版本变化太快 有很多东西都没法走下去
很好的教材,从头教你如何做一个很像样的游戏,而非跳动的小球。如果例子能兼容最新的unity 4,我会给五分,还有,附录放在光盘里很郁闷,中文版不翻译了,若是把改进做成每章后的练习题,再加一个总课程实践,似乎更好
绝对是机翻,有工夫不如去读原版
绝对是机翻,有工夫不如去读原版
书的性价比不高,翻译的读本没有太大的期待。对新手来说,可以依葫芦画瓢吧。