新書推薦:

《
水库式经营
》
售價:NT$
286.0

《
哲学家的最后一课
》
售價:NT$
270.0

《
进入全球公共视域的清帝国:欧洲文献里的中国邸报
》
售價:NT$
649.0

《
微积分学教程(第二卷)(第8版)
》
售價:NT$
545.0

《
16至20世纪知识史中的流亡者与客居者
》
售價:NT$
484.0

《
家庭经济学:用经济学视角解读家庭关系
》
售價:NT$
380.0

《
攻金之工:早期东西文明交流中的金属艺术
》
售價:NT$
6528.0

《
人间词话汇编汇校汇评(新)
》
售價:NT$
254.0
|
編輯推薦: |
完全掌握Unity引擎的用法,充分发挥它在3D和2D游戏开发、仿真、人工智能等领域的强大潜力,从脚本编写基础知识到交互性、人工智能和行为、动画,叙事和网络等高级技术,这个灵活且深受欢迎的引擎适用于任何需要视觉和实时仿真的项目场景。
《Unity Cookbook中文版:从游戏开发到AI实时解决方案(第2版)》经过全面更新,旨在帮助Unity的初学者和中级开发者通过实用的教程来学习Unity引擎,从中了解和掌握软件与脚本系统的具体功能。通过本书,读者将学习如何应用一系列代码片段来处理常见的问题,如正确记录分数、接收输入以及在网络上共享状态。
这本指南采用了深受读者欢迎的三合一模式:精准定位问题,提出解决方案,讨论高效直接的方式。书中提供了以下问题的解决方案:
● 2D和3D图形
● 输入和游戏玩法
● 脚本编写和用户界面
● 数学、物理和角色控制
● 动画和移动
● 仿真和合成数据创建
● 行为和人工智能
● 网络和访问网络内容
● 声音和音乐
● 分析和遥测
● 叙事和对话
|
內容簡介: |
作为游戏开发实用指南,《Unity Cookbook中文版:从游戏开发到AI实时解决方案(第2版)》经过全面更新,沿用深受读者欢迎的三合一模式,针对139个有价值的问题给出了详尽的解决方案和有价值的讨论,旨在帮助初学者和中级开发者深入学习Unity引擎的强大功能。全书共13章,主题涉及基础脚本编写到高级技术(如AI、动画和网络等)。通过这本实用性更强的教程,读者将学会如何应用代码片段快速而准确地解决实际问题,尤其是3D游戏开发和2D游戏开发、仿真和人工智能项目中的2D/3D图形、物理、AI、声音、叙事、输入、脚本和网络等问题。
《Unity Cookbook中文版:从游戏开发到AI实时解决方案(第2版)》内容全面,可操作性强,适合希望高效使用Unity的专业人员和其他游戏开发爱好者阅读和参考。
|
關於作者: |
作者简介
帕里斯·巴特菲尔德-艾迪生(ParisButtfield-Addison)、乔恩·曼宁(JonManning)和蒂姆·纽金特(Tim Nugent)合作开发了YamSpinner叙事框架。他们仨都拥有计算机科学博士学位,他们开发的电子游戏数不胜数。帕里斯和乔恩共同创立了SecretLab。该游戏工作室的代表作品有《林中之夜》《我感觉很好》和《莱昂纳多的月球飞船》等。
译者简介
周子衿,本科留学期间多次入选“院长优等生名录”,主修商业分析,曾经运用数据模型和R语言帮助某企业在半年内实现了十倍的业务增长。就职于VMWare期间,对认知心理学、人工智能和技术发展发生了浓厚的兴趣。编程与美食爱好者,奉行深思笃行的做事原则,有志于通过技术途径和感性思维来探寻商业价值与人文精神的平衡。代表译作有《游戏项目管理与敏捷开发》《人工智能与用户体验》《高质量用户体验》(第2版)以及名家名作《Unity 2D游戏开发》和《Unity 3D游戏开发》等。
审校者简介
陈子佶,就职于盛趣游戏,热爱游戏与技术,奉行“代码如诗”的理念。在架构设计、代码重构和性能优化方面拥有深入的理解和丰富的经验。设计与开发完成的项目有MMORPG服务器架构和Redis库。目前主要从事服务器C 与Unity C#的游戏开发。
|
目錄:
|
第1 章 Unity 基础 9
1.1 Unity 编辑器 9
1.2 游戏对象 18
1.3 组件 20
1.4 预制件 22
1.5 场景 25
1.6 资源 25
1.7 构建Unity 项目 27
1.8 访问偏好设置 28
1.9 安装Unity 包 30
第2 章 编写脚本 31
2.1 向Unity 场景中的对象添加脚本 32
2.2 在脚本(或游戏对象)生命周期的特定时刻执行代码 36
2.3 创建与帧率无关的行为 38
2.4 使用游戏对象上的组件 40
2.5 查找附加到游戏对象的对象 42
2.6 单例模式 43
2.7 使用协程来管理运行中的代码 46
2.8 使用对象池高效管理对象 50
2.9 在资源中使用 ScriptableObject 存储数据 58
第3 章 输入 61
3.1 获取简单的键盘输入 61
3.2 使用Unity 输入系统 63
3.3 使用输入动作 64
3.4 锁定和隐藏鼠标光标 71
3.5 响应鼠标悬停和点击事件 71
第4 章 数学知识 76
4.1 使用向量存储不同维度的坐标 77
4.2 在三维空间中旋转 83
4.3 在3D 空间中使用矩阵执行变换 85
4.4 角度 90
4.5 确定到目标的距离 91
4.6 寻找与目标之间的角度 92
第5 章 2D 图形 94
5.1 将图像导入为精灵 94
5.2 将精灵添加到场景中 96
5.3 创建精灵动画 97
5.4 为精灵添加2D 物理效果 98
5.5 自定义精灵碰撞形状 98
5.6 复合碰撞体 101
5.7 使用Sprite Packer 102
5.8 对2D 对象施加力 103
5.9 创建传送带 105
5.10 使用自定义材质绘制精灵 106
5.11 管理精灵的绘制顺序 108
5.12 使用排序组 109
5.13 创建2.5D 场景 111
第6 章 3D 图形 112
6.1 创建简单的材质 112
6.2 通过脚本控制材质属性 114
6.3 创建无光照材质 115
6.4 使用纹理设置材质 116
6.5 设置材质使用着色器 118
6.6 利用后处理设置泛光效果 119
6.7 使用通用渲染管线启用后处理设置泛光效果 123
6.8 使用高动态范围颜色 124
6.9 设置项目以使用可编程渲染管线 126
6.10 使用Shader Graph 创建着色器 128
6.11 使用Shader Graph 创建发光效果 129
6.12 通过Shader Graph 公开属性 132
6.13 随时间变化的着色器动画 134
6.14 控制动画着色器的速度 136
6.15 使用子图以重用图形组件 137
6.16 使用Shader Graph 实现溶解效果 139
6.17 使用烘焙光照和实时光照 143
6.18 使用烘焙发射源 144
6.19 让静态对象在动态对象上投射阴影 145
6.20 使用光照探针影响照明 147
6.21 反射探针 149
6.22 伪造动态自发光对象 152
6.23 渲染到纹理 153
第7 章 3D 物理与角色控制 156
7.1 每秒运行特定次数的代码 156
7.2 允许玩家使用鼠标四处查看 157
7.3 控制3D 角色 160
7.4 与开关和游戏对象互动 163
7.5 拾取和放置游戏对象 165
7.6 检测对象与其他对象的接触 171
7.7 检测对象何时处于触发器区域 173
7.8 实现移动平台 174
7.9 让玩家能够搭乘移动平台 177
7.10 对物体推动的响应 181
第8 章 动画与运动 184
8.1 对游戏对象进行动画处理 185
8.2 基础角色行走动画 189
8.3 反向动力学 194
8.4 遮罩移动 197
8.5 混合运动 201
8.6 导航与同步动画 205
8.7 电影镜头注视 208
8.8 自动切换摄像机 211
8.9 同时将多个对象保持在视野中 212
8.10 摄像机推轨 213
第9 章 逻辑与游戏玩法 216
9.1 加载新场景文件 216
9.2 生命值管理 220
9.3 创建俯视摄像机 224
9.4 管理任务 227
9.5 通过拖动框选择对象 241
9.6 创建菜单结构 245
9.7 创建带有轮子的载具 249
9.8 防止汽车倾覆 253
9.9 创建加速道具 254
9.10 创建围绕目标旋转的摄像机 256
9.11 创建不会穿墙的环绕摄像机 259
9.12 检测玩家何时跑完一圈 260
第10 章 行为、模拟与AI 271
10.1 让敌人检测到视野内的玩家 271
10.2 定义AI 实体和玩家可以跟随的路径 277
10.3 让游戏中的实体跟随路径 279
10.4 实现良好的随机点分布(泊松圆盘) 281
10.5 敌人探测可躲避的地方 286
10.6 构建和使用状态机 291
10.7 构建用于机器学习的模拟环境 295
第11 章 音频与音乐 301
11.1 播放音效 301
11.2 设置混音器 304
11.3 使用音频效果 305
11.4 使用发送和接收效果 308
11.5 Duck Volume 效果 310
11.6 使用多个音频区域 311
11.7 使用脚本播放音频 313
11.8 使用声音管理器 314
第12 章 Unity 的UI 系统 318
12.1 使用UI 控件 319
12.2 控件的主题化 323
12.3 动画UI 326
12.4 创建项目列表 329
12.5 实现列表项的淡出效果 334
12.6 创建屏幕位置指示器 336
12.7 自定义编辑器 341
12.8 界面属性绘制器 346
12.9 特性绘制器 351
12.10 处理资源 354
12.11 向导 356
第13 章 文件、网络和截图 359
13.1 保存文件 359
13.2 游戏截图保存到磁盘 360
13.3 从磁盘加载纹理 361
13.4 保存和加载游戏状态 363
13.5 从Web 服务器下载及解析JSON 数据 379
13.6 脚本化导入器 382
|
內容試閱:
|
欢迎阅读本书第2 版!在过去的20 年,实时3D 和游戏开发工具不断在进步,吸引着越来越多的人参与游戏开发,无论是大型3A 游戏还是个人利用业余时间开发的独立游戏。
我们很高兴有机会更新这本书,也为我们为这本书付出的心血而感到自豪。希望在你使用Unity 引擎进行游戏开发时,这本书能成为一个得力的助手。自读者2007 年我们开始使用Unity 以来,Unity 已经取得了长足的进步,使用时间越长,我们越容易挖掘出它的新用法和新的优势!这一切令人兴奋异常。相信我们,这是我们的亲身体验。
我们Secret Lab 工作室开发的大部分电子游戏都是用Unity 开发的。Secret Lab 的主要作品有:与澳大利亚广播公司、航空公司、博物馆和学校合作开发的多款少儿游戏、获得英国学院游戏奖(British Academy Games Adwards,BAFTA)和独立游戏节(Independent Games Festival,IGF)大奖的《林中之夜》(Night in the Woods,由Finji 发行)以及广受欢迎的Yarn Spinner 插件。我们开始接触Unity 以来,它就一直是我们创作路上不可或缺的伙伴。
这本书汇集了一系列“配方”,旨在解决Unity 开发过程中经常遇到的问题。虽然本书可能无法解答你对Unity 的所有疑问,但涵盖了日常游戏开发中需要完成的大部分任务。第2 版增加了大量新的内容,反映了Unity 自本书第1 版发布以来的诸多变化,并全面更新了所有相关内容。尽管Unity 的更新速度并不快,但保持走在技术的前沿仍然十分重要。
我们把自己初次使用Unity 时遇到的难题和困惑整理到本书的配方中。真心希望它们能够为你提供帮助。
现在正是使用Unity 的黄金时期。实时开发和游戏开发的世界日新月异,可以选择的工具和技术也达到了前所未有的水平。勇敢地迈出步伐,创造伟大的作品吧!
目标读者和写作风格
本书假设读者对C# 语言或其他类似语言(如C 语言、Java 语言、Go 语言、Swift 语言、Python 语言等)有一定的了解,但对Unity 一无所知。本书旨在成为读者的得力助手,帮助读者更快地掌握Unity 并开发出自己的游戏。
如果欣赏我们的写作风格,并希望深入学习更多与Unity 相关的知识,推荐阅读《Unity 手机游戏开发》(Mobile Game Development with Unity),这本书同样由O’Reilly 优秀的团队出版(https://oreil.ly/XO9Jf)。
本书的截图均来自Windows 系统,但书中讨论的内容普遍适用于Windows、macOS和Linux 等不同操作系统下的Unity 使用场景。
本书的结构
本书分为13 章。
? 第1 章“Unity 基础”,介绍使用Unity 时需要了解的基本概念,包括游戏对象、组件、场景以及如何使用Unity 编辑器。
? 第2 章“编写脚本”,讲解Unity 的脚本接口,我们通过这种方式来编写代码,实现项目功能。讲解了基础知识之后,本章接着介绍一系列实用示例,其中包括如何实现保存和加载系统、如何高效地处理对象以及如何以便于代码和Unity处理的方式存储数据。
? 第3 章“输入”,讲解如何获取用户的输入,如键盘输入、鼠标输入和游戏手柄输入。此外,本章还将探讨如何配置响应用户点击等输入事件的游戏对象。
? 第4 章“数学知识”,简要说明开发游戏时需要了解的一些数学概念,如向量、矩阵和四元数。本章还要介绍这些概念的一些实际应用,如检测一个游戏对象是否位于玩家前方。
? 第5 章“2D 图形”,探讨Unity 内置的2D 图形和物理系统。你将从中学习如何显示精灵(sprite),如何对它们进行排序以及如何实现它们之间的碰撞效果。
? 第6章“3D图形”,讲解Unity的材质和着色系统,包括材质和着色器的工作原理、如何在Unity 中创建着色器以及如何在场景中实现最佳视觉效果。
? 第7 章“3D 物理与角色控制”,说明如何利用Unity 的3D 物理系统来满足常见的游戏玩法需求,如拾取和投掷对象,以及创建玩家可以乘坐的移动平台。
? 第8 章“动画与运动”,介绍Unity 的动画系统,说明如何实现角色在不同动画状态之间的自然过渡以及如何将玩家的操作与角色动画结合起来。本章还要介绍Unity 的摄像机系统以及讲解如何使摄像机跟随目标移动。
? 第9 章“逻辑与游戏玩法”,专注于设计和创建游戏玩法。本章要涵盖许多常见的游戏玩法,如管理玩家的任务状态、监控赛车是否在违规抄近道以及管理游戏对象之间的伤害处理。
? 第10 章“行为、模拟和AI”,讲解如何赋予游戏角色智能,使其能够检测到视野中的玩家、自动导航、规避障碍物以及寻找藏身处。本章还要简要探讨如何使用Unity 进行模拟以及使用机器学习技术实现真正的人工智能。
? 第11 章“音频与音乐”,介绍Unity 中的音频系统。本章要从播放音频的基础知识讲起,然后逐步深入到更高级的功能,如将音频路由到不同的音频组以及在游戏角色说话时自动调整背景音乐的音量。
? 第12 章“Unity 的UI 系统”,介绍用于构建UI(用户界面)的工具。本章还要专门讲解如何通过扩展Unity 编辑器来创建自定义工具。
? 第13章“文件、网络和截图”,作为本书的最后一章,要探讨如何进行网络通信、如何从网上获取数据以及如何通过代码保存截图。
排版约定
本书使用的排版约定如下:
斜体
表示新术语、URL、电子邮件地址、文件名和文件扩展名
Constant width(等宽字体)
表示程序代码和段落内的程序元素,如变量名、函数名、数据库、数据类型、环境变量、语句和关键字等
Constant width bold(粗体等宽字体)
表示用户应该逐字键入的命令或其他文本
这个元素表示提示或建议。
这个元素表示一般性的附注。
这个元素表示警告或注意事项。
示例代码使用规范
如果想下载本书中的代码,请访问本书的GitHub 存储库(https://oreil.ly/unity-devcookbook-code)。我们还为本书专门创建了一个网页(https://oreil.ly/9b_pc),其中保存了书中的所有源代码以及其他资源。
这本书旨在帮助你学习。一般来说,除非计划大量复制或使用书中的代码,否则可以随意在自己的程序和文档中应用本书提供的示例代码,不需要事先征得我们的同意。举例来说,编写一个包含书中多个代码片段的程序不需要特别许可。但是,若要出售或分发O’Reilly 书籍中的示例代码,则务必事先获得我们的正式许可。引用本书和书中的示例代码来回答问题不需要特别许可,但是,如果在你的产品文档中大量引用本书的示例代码,就需要获得正式许可。
虽然不是强制性要求,但我们总是欢迎并感激任何对书籍归属权益的标注。书籍归属标注应包含书名、作者、出版社和ISBN。例如:“Unity Development Cookbook:Real-Time Solutions from Game Development to AI,作者:Paris Buttfield-Addison,Jon Manning 和Tim Nugent(O’Reilly 出版社)。2023 年版权所有,Secret Lab Pty.Ltd.,ISBN 978-1-098-11371-1。”
如果认为自己使用示例代码的方式可能超出合理使用范围或上述许可范围,请随时通过以下邮箱联系我们:permissions@oreilly.com。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
联系我们
请把对本书的评价和问题发给出版社。
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
致谢
帕里斯想要感谢他伟大的母亲,如果没有她,他绝对无法像现在这样充满激情地开展每一项工作。此外,他还想感谢他了不起的妻子玛尔斯。她是他最坚强的支柱。
乔恩想要感谢他的母亲、父亲以及大家庭里所有的成员,感谢所有人的大力支持。
蒂姆想要感谢他的父母和家人,即使他的生活态度比较散漫,他们也始终表现出极大的包容和理解。
我们仨都要向我们的朋友瑞秋·鲁梅利奥蒂斯致以诚挚的感谢,她在过去10 年所提供的专业技术指导和宝贵建议对我们仨的写作事业有着不可估量的帮助。
感谢本书的编辑米歇尔·克罗宁。我们非常享受与她的合作,并且已经迫不及待地想开始写新书了。此外,还要特别感谢本书上一版的编辑杰夫·布莱尔。他情绪稳定,表达清晰,充满热情,与他的合作非常愉快,希望我们将来能够再次合作!
同样,要感谢我们在本书写作过程接触到的O’Reilly Media 的所有工作人员,他们无疑是各自领域的权威。O’Reilly Media 拥有众多才华横溢的员工,无论是正式员工、合同工还是其他相关人士,他们都表现出令人惊叹的专业水准。
特别感谢托尼·格雷和苹果大学联盟(Apple University Consortium,AUC),他们为我们及这里提及的其他人员提供了巨大的支持。如果没有他们,这本书将不会诞生。听说托尼现在也踏上了写作的道路——不好意思,提前剧透啦!
还要感谢尼尔·戈尔德斯坦,我们之所以踏上写作的道路,完全要归功于(或者说,归咎于)他。
还要感谢MacLab 的朋友们(他们知道自己是谁,并且他们仍在守望着海军上将Dolphin 的化神之路)以及克里斯托弗·吕格教授、莱昂妮·艾利斯副教授以及塔斯马尼亚大学的当前以及之前的工作人员,感谢他们的包容和支持。
感谢戴夫·J. 及其团队提供的咖啡。如果你哪天来到澳大利亚塔斯马尼亚州的霍巴特市,请务必在Yellow Bernard 咖啡店品尝一杯咖啡,那里有品质一流的咖啡。
感谢所有认真而专业的技术审阅人员。他们的建议带来了很大的帮助。
最后,感谢购买这本书的每一位读者朋友——在此深表感激!如果有任何反馈或建议,欢迎通过lab@secretlab.com.au 与我们联系,或在推特X 上找到我们@thesecretlab。
|
|