︱目 录︱
第1 章 AIGC 游戏编程与Unity 基础 / 1
1.1 游戏编程与AIGC 概述 / 1
1.1.1 游戏编程 / 1
1.1.2 AIGC 辅助编程 / 2
1.2 游戏开发环境和AI 辅助 / 4
1.2.1 开发环境 / 4
1.2.2 Qwen 大模型 / 5
1.3 使用Unity 的优势 / 7
1.3.1 关于Unity / 7
1.3.2 关于团结引擎 / 7
1.3.3 集成开发环境 / 9
1.3.4 支持多个平台 / 9
1.3.5 开放的社区 / 9
1.3.6 Asset Store / 9
1.4 运行Unity / 10
1.4.1 Unity 的安装与激活 / 10
1.4.2 创建并保存Unity 工程 / 15
1.4.3 打开Unity 工程 / 17
1.5 Unity 编辑器的结构 / 18
1.5.1 Scene 视窗 / 18
1.5.2 Game 视窗 / 20
1.5.3 Project 视窗 / 21
1.5.4 Hierarchy 视窗 / 22
1.5.5 Inspector 面板 / 23
1.5.6 Console 视窗 / 23
1.5.7 其他视窗工具 / 24
1.6 IDE 与AIGC 工具集成 / 26
1.7 实例:使用Unity 与AIGC 快速原型
开发 / 32
思考与练习 / 36
第2 章 游戏引擎的基础功能 / 37
2.1 灯光 / 37
2.1.1 创建灯光 / 37
2.1.2 平行光 / 38
2.1.3 点光 / 39
2.1.4 聚光灯 / 40
2.1.5 区域光 / 40
2.2 游戏元素 / 41
2.2.1 创建3D Object / 41
2.2.2 创建空游戏对象 / 42
2.2.3 创建游戏预置体——Prefab / 43
2.2.4 创建2D Object / 44
2.3 纹理 / 44
2.4 材质 / 45
2.4.1 创建材质 / 46
2.4.2 材质着色器 / 47
2.4.3 渲染模式属性 / 47
2.4.4 反照率属性 / 47
2.4.5 金属属性 / 47
2.4.6 法线贴图 / 48
2.4.7 视差高度贴图 / 48
2.4.8 环境闭塞贴图 / 49
2.4.9 放射属性 / 50
2.4.10 细节遮罩和二次贴图 / 50
2.5 游戏地形 / 51
2.5.1 地形高度工具 / 51
2.5.2 添加地表附属物 / 52
2.5.3 地形设置 / 55
2.6 天空盒子 / 55
2.7 资源导入 / 55
2.7.1 3D 模型的导入 / 56
2.7.2 骨骼动画的导入 / 56
2.7.3 资源包的保存与导入 / 57
2.7.4 音频和视频资源导入 / 59
2.8 创建、保存和打开游戏场景 / 60
2.9 Camera 组件 / 61
2.10 实例:使用AIGC 辅助编程实现自由
视角的3D 空间 / 63
思考与练习 / 67
第3 章 AIGC 增强的游戏交互与动画 / 68
3.1 游戏脚本与AIGC 优化 / 69
3.1.1 创建脚本 / 69
3.1.2 使用AIGC 辅助编程工具创建
脚本 / 72
3.2 键盘事件 / 72
3.2.1 按下事件 / 72
3.2.2 抬起事件 / 73
3.2.3 长按事件 / 74
3.2.4 按任意键事件 / 75
3.3 鼠标事件 / 76
3.3.1 按下事件 / 76
3.3.2 抬起事件 / 77
3.3.3 长按事件 / 78
3.4 输入管理器 / 79
3.4.1 自定义输入控制 / 79
3.4.2 自定义按键输入 / 81
3.4.3 自定义轴输入 / 82
3.4.4 自定义操纵杆输入 / 84
3.5 Mecanim 动画系统 / 85
3.5.1 Legacy 动画系统 / 86
3.5.2 Generic 动画类型和状态机 / 88
3.5.3 Humanoid 动画类型 / 94
3.5.4 反向动力学 / 98
3.6 实例:AIGC 辅助制作逃出迷宫
游戏 / 101
思考与练习 / 105
第4 章 物理世界模拟与AIGC 优化 / 107
4.1 组件 / 107
4.1.1 Unity 引擎的内建组件 / 108
4.1.2 自定义组件 / 109
4.1.3 添加和修改组件 / 110
4.1.4 动态获取游戏对象 / 112
4.2 Transform 组件 / 115
4.2.1 三维向量 / 115
4.2.2 使用Transform 组件改变游戏
对象的位置 / 116
4.2.3 控制游戏对象的旋转 / 117
4.2.4 平滑跟随 / 119
4.2.5 Transform 组件的层级关系 / 121
4.3 刚体组件 / 122
4.3.1 使用刚体组件 / 122
4.3.2 物理管理器 / 126
4.4 碰撞组件 / 129
4.4.1 箱体碰撞体 / 130
4.4.2 球形碰撞体 / 131
4.4.3 胶囊碰撞体 / 131
4.4.4 网格碰撞体 / 132
4.4.5 车轮碰撞体 / 133
4.4.6 地形碰撞体 / 135
4.4.7 物理材质 / 135
4.5 碰撞检测 / 137
4.5.1 碰撞事件 / 137
4.5.2 触发器事件 / 140
4.5.3 应用Tag / 142
4.6 角色控制器组件 / 146
4.6.1 使用角色控制器控制移动
和跳跃 / 147
4.6.2 角色控制器的碰撞检测 / 150
4.7 关节组件 / 152
4.7.1 铰链关节组件 / 153
4.7.2 固定关节组件 / 155
4.7.3 弹簧关节组件 / 156
4.7.4 角色关节组件 / 157
4.7.5 可配置关节组件 / 158
4.7.6 布娃娃系统 / 160
4.8 布料组件 / 163
4.9 恒力组件 / 169
4.10 实例:AIGC 生成物理小游戏 / 169
思考与练习 / 175
第5 章 AIGC 驱动的游戏界面设计 / 177
5.1 图片精灵——Sprite / 178
5.2 画布——Canvas / 178
5.2.1 Canvas 组件 / 178
5.2.2 画布缩放器组件 / 182
5.2.3 射线投射器组件 / 183
5.2.4 渲染顺序 / 183
5.2.5 矩形变换组件 / 184
5.3 内容显示UI 元素 / 188
5.3.1 Text 组件 / 188
5.3.2 Image 组件 / 191
5.3.3 Raw Image 组件 / 194
5.4 交互UI 元素 / 194
5.4.1 Button 组件 / 194
5.4.2 Scrollbar 组件 / 197
5.4.3 Scroll Rect 组件 / 198
5.4.4 Input Field 组件 / 199
5.4.5 Dropdown 组件 / 201
5.4.6 Toggle 组件 / 203
5.5 Event System 对象 / 205
5.6 UI Toolkit / 205
5.7 实例:AIGC 生成音乐播放器界面 / 208
思考与练习 / 208
第6 章 AIGC 与游戏数据持久化 / 210
6.1 PlayerPrefs 类 / 210
6.1.1 数据的存储和读取 / 211
6.1.2 检查和删除数据 / 213
6.2 保存JSON 到本地 / 215
6.2.1 JSON 的语法规则 / 215
6.2.2 JSON 的对象和数组 / 216
6.2.3 生成JSON / 216
6.2.4 解析JSON / 217
6.2.5 保存JSON 到本地 / 219
6.3 Application 类 / 223
6.3.1 数据路径 / 223
6.3.2 场景索引 / 223
6.3.3 异步加载 / 225
6.3.4 退出游戏 / 227
6.4 打包与发布 / 227
6.5 实例:AIGC 生成保存进度功能 / 228
思考与练习 / 232
第7 章 AIGC 与在线游戏开发 / 233
7.1 网络协议 / 233
7.2 网络游戏 / 234
7.3 服务器与客户端通信 / 234
7.3.1 创建TCP 本地服务端 / 235
7.3.2 TCP 客户端的连接和断开 / 238
7.4 实例:AIGC 生成聊天服务端 / 242
思考与练习 / 248
第8 章 游戏开发中的AIGC 解决方案 / 249
8.1 从手工编码到AI 增强的开发模式
演进 / 249
8.1.1 通义灵码的核心AI 能力 / 250
8.1.2 通义灵码对Unity 系统架构的
理解能力 / 250
8.2 代码风格统一与规范自动检查 / 251
8.2.1 代码风格统一的传统做法 / 252
8.2.2 借助通义灵码实现规范自动
检查 / 253
8.3 代码重构自动化 / 255
8.3.1 优化设计模式与解耦 / 255
8.3.2 代码复用性与模块化 / 256
8.3.3 Unity 项目自动化重构的通用
策略 / 257
8.4 Lingma IDE / 258
8.4.1 通义灵码编程智能体 / 258
8.4.2 记忆与MCP 服务 / 259
8.5 实例:使用通义灵码智能体生成
Unity 完整项目 / 262
思考与练习 / 266
参考文献 / 268
