Godot游戏开发权威指南

Godot游戏开发权威指南

深入浅出,从入门到精通

篇幅:约 100 万字

语言:简体中文

适用版本:Godot 4.x


目录


第一部分:入门基础(约 10 万字)

前言

  • 为什么要学习游戏开发
  • Godot引擎的独特优势
  • 本书的阅读指南
  • 学习路径建议

第一章:Godot引擎概述

  • 1.1 游戏引擎的发展史
  • 1.2 Godot的设计哲学

- 1.2.1 节点系统 - 1.2.2 场景树架构 - 1.2.3 轻量化设计

  • 1.3 Godot vs 其他引擎

- 1.3.1 与Unity的对比 - 1.3.2 与Unreal Engine的对比 - 1.3.3 与GameMaker的对比

  • 1.4 Godot的应用领域

- 1.4.1 2D游戏开发 - 1.4.2 3D游戏开发 - 1.4.3 交互式应用 - 1.4.4 教育与培训

  • 1.5 Godot版本演进

- 1.5.1 Godot 3.x到4.x的重大变化 - 1.5.2 版本选择建议

  • 1.6 开源社区与生态系统

- 1.6.1 GitHub贡献者 - 1.6.2 官方资源 - 1.6.3 第三方工具和库 - 1.6.4 学习资源推荐

第二章:环境搭建与配置

  • 2.1 系统要求

- 2.1.1 硬件配置要求 - 2.1.2 操作系统支持 - 2.1.3 开发工具准备

  • 2.2 下载与安装

- 2.2.1 官方下载渠道 - 2.2.2 Windows安装步骤 - 2.2.3 macOS安装步骤 - 2.2.4 Linux安装步骤 - 2.2.5 移动端开发环境配置

  • 2.3 从源码编译

- 2.3.1 开发环境搭建 - 2.3.2 SCons构建系统 - 2.3.3 编译选项说明 - 2.3.4 编译常见问题解决

  • 2.4 编辑器设置

- 2.4.1 界面主题设置 - 2.4.2 编辑器偏好设置 - 2.4.3 外部工具配置 - 2.4.4 键盘快捷键自定义 - 2.4.5 代码编辑器设置

  • 2.5 首次启动与初始化

- 2.5.1 项目管理器界面 - 2.5.2 创建第一个项目 - 2.5.3 项目结构说明

  • 2.6 工作流最佳实践

- 2.6.1 版本控制集成 - 2.6.2 项目组织规范 - 2.6.3 协作开发配置

第三章:用户界面详解

  • 3.1 主界面布局

- 3.1.1 顶部菜单栏 - 3.1.2 顶部工具栏 - 3.1.3 左侧场景面板 - 3.1.4 右侧检查器面板 - 3.1.5 底部资源面板 - 3.1.6 中央编辑器视口

  • 3.2 视口操作

- 3.2.1 2D视图操作 - 3.2.2 3D视图操作 - 3.2.3 视口快捷键 - 3.2.4 视口配置

  • 3.3 场景系统

- 3.3.1 场景面板功能 - 3.3.2 节点树操作 - 3.3.3 节点搜索与筛选 - 3.3.4 节点分组管理

  • 3.4 检查器面板

- 3.4.1 属性分类 - 3.4.2 属性编辑器 - 3.4.3 资源引用管理 - 3.4.4 信号连接 - 3.4.5 组属性设置

  • 3.5 资源系统

- 3.5.1 资源面板功能 - 3.5.2 资源导入设置 - 3.5.3 资源预览 - 3.5.4 资源搜索与过滤

  • 3.6 其他面板

- 3.6.1 输出面板 - 3.6.2 调试器面板 - 3.6.3 动画面板 - 3.6.4 导出面板

  • 3.7 界面自定义

- 3.7.1 面板布局调整 - 3.7.2 工作区保存 - 3.7.3 界面主题切换

第四章:第一个项目

  • 4.1 项目创建流程

- 4.1.1 新项目向导 - 4.1.2 渲染器选择 - 4.1.3 项目命名与位置 - 4.1.4 项目设置概览

  • 4.2 Hello World示例

- 4.2.1 创建主场景 - 4.2.2 添加标签节点 - 4.2.3 编写显示脚本 - 4.2.4 运行与调试

  • 4.3 项目结构解析

- 4.3.1 res://目录结构 - 4.3.2 .godot隐藏目录 - 4.3.3 project.godot配置文件 - 4.3.4 import/目录作用

  • 4.4 项目设置

- 4.4.1 应用配置 - 4.4.2 渲染设置 - 4.4.3 物理设置 - 4.4.4 层与遮罩设置 - 4.4.5 输入映射配置 - 4.4.6 自动加载设置 - 4.4.7 图标设置 - 4.4.8 插件管理

  • 4.5 导出设置

- 4.5.1 导出模板安装 - 4.5.2 平台导出配置 - 4.5.3 资源导出设置 - 4.5.4 签名与打包

  • 4.6 实践练习

- 4.6.1 创建简单的计数器应用 - 4.6.2 添加用户交互 - 4.6.3 实现数据持久化 - 4.6.4 打包测试应用


第二部分:GDScript编程(约 15 万字)

第五章:GDScript基础语法

  • 5.1 GDScript简介

- 5.1.1 为什么选择GDScript - 5.1.2 与Python的对比 - 5.1.3 GDScript的设计原则 - 5.1.4 性能特点

  • 5.2 脚本结构

- 5.2.1 extends关键字 - 5.2.2 类名定义 - 5.2.3 工具模式 - 5.2.4 类文件组织

  • 5.3 注释与文档

- 5.3.1 单行注释 - 5.3.2 多行注释 - 5.3.3 文档注释 - 5.3.4 代码注释最佳实践

  • 5.4 变量声明

- 5.4.1 类型推导 - 5.4.2 显式类型声明 - 5.4.3 类型转换 - 5.4.4 变量作用域 - 5.4.5 静态变量

  • 5.5 运算符

- 5.5.1 算术运算符 - 5.5.2 比较运算符 - 5.5.3 逻辑运算符 - 5.5.4 位运算符 - 5.5.5 赋值运算符 - 5.5.6 运算符优先级

  • 5.6 代码风格

- 5.6.1 命名规范 - 5.6.2 缩进与空格 - 5.6.3 代码格式化 - 5.6.4 GDScript代码规范

第六章:变量与数据类型

  • 6.1 基本数据类型

- 6.1.1 整型(int) - 6.1.2 浮点型(float) - 6.1.3 布尔型(bool) - 6.1.4 字符串(String)

  • 6.2 数组类型

- 6.2.1 Array(动态数组) - 6.2.2 数组创建与初始化 - 6.2.3 数组操作方法 - 6.2.4 数组遍历 - 6.2.5 多维数组 - 6.2.6 PackedArray(紧凑数组) - 6.2.6.1 PackedByteArray - 6.2.6.2 PackedInt32Array - 6.2.6.3 PackedFloat32Array - 6.2.6.4 PackedStringArray - 6.2.6.5 PackedVector2Array - 6.2.6.6 其他PackedArray

  • 6.3 字典类型

- 6.3.1 Dictionary基本操作 - 6.3.2 键值类型 - 6.3.3 字典遍历 - 6.3.4 字典方法 - 6.3.5 类型化字典

  • 6.4 容器类型

- 6.4.1 集合概念 - 6.4.2 队列操作 - 6.4.3 栈操作

  • 6.5 引用类型

- 6.5.1 节点引用 - 6.5.2 资源引用 - 6.5.3 空引用处理 - 6.5.4 弱引用

  • 6.6 类型系统

- 6.6.1 类型检查 - 6.6.2 类型断言 - 6.6.3 类型提示 - 6.6.4 泛型支持

  • 6.7 可空类型

- 6.7.1 可空类型语法 - 6.7.2 可空类型使用场景 - 6.7.3 可空类型检查

  • 6.8 类型转换最佳实践

- 6.8.1 安全转换 - 6.8.2 转换性能 - 6.8.3 类型转换陷阱

第七章:控制流程

  • 7.1 条件语句

- 7.1.1 if语句 - 7.1.2 elif语句 - 7.1.3 else语句 - 7.1.4 嵌套条件 - 7.1.5 条件表达式 - 7.1.6 match语句(模式匹配) - 7.1.6.1 基本模式 - 7.1.6.2 通配符模式 - 7.1.6.3 绑定模式 - 7.1.6.4 数组模式 - 7.1.6.5 字典模式 - 7.1.6.6 类型模式

  • 7.2 循环语句

- 7.2.1 for循环 - 7.2.2 while循环 - 7.2.3 range()函数 - 7.2.4 循环控制 - 7.2.4.1 break语句 - 7.2.4.2 continue语句 - 7.2.5 嵌套循环 - 7.2.6 循环性能优化

  • 7.3 迭代器

- 7.3.1 可迭代对象 - 7.3.2 迭代器协议 - 7.3.3 自定义迭代器

  • 7.4 异常处理

- 7.4.1 try-except块 - 7.4.2 异常类型 - 7.4.3 raise语句 - 7.4.4 finally块 - 7.4.5 异常最佳实践

  • 7.5 断言

- 7.5.1 assert语句 - 7.5.2 断言使用场景 - 7.5.3 调试与发布模式差异

  • 7.6 控制流程设计模式

- 7.6.1 状态机实现 - 7.6.2 流程控制优化 - 7.6.3 代码可读性提升

第八章:函数与方法

  • 8.1 函数定义

- 8.1.1 基本语法 - 8.1.2 参数列表 - 8.1.3 返回值类型 - 8.1.4 函数重载 - 8.1.5 静态函数

  • 8.2 参数机制

- 8.2.1 必需参数 - 8.2.2 默认参数 - 8.2.3 关键字参数 - 8.2.4 可变参数 - 8.2.5 参数解包 - 8.2.6 参数传递方式

  • 8.3 返回值

- 8.3.1 return语句 - 8.3.2 多返回值 - 8.3.3 隐式返回 - 8.3.4 返回类型推导

  • 8.4 内置函数

- 8.4.1 数学函数 - 8.4.2 类型转换函数 - 8.4.3 容器函数 - 8.4.4 字符串函数 - 8.4.5 调试函数

  • 8.5 Lambda表达式

- 8.5.1 语法格式 - 8.5.2 闭包概念 - 8.5.3 Lambda使用场景

  • 8.6 函数作为一等公民

- 8.6.1 函数赋值 - 8.6.2 函数作为参数 - 8.6.3 函数作为返回值 - 8.6.4 高阶函数

  • 8.7 函数装饰器

- 8.7.1 装饰器概念 - 8.7.2 创建装饰器 - 8.7.3 装饰器应用

  • 8.8 性能优化

- 8.8.1 函数调用开销 - 8.8.2 内联优化 - 8.8.3 函数缓存

第九章:面向对象编程

  • 9.1 OOP基础概念

- 9.1.1 面向对象思想 - 9.1.2 类与对象 - 9.1.3 封装 - 9.1.4 继承 - 9.1.5 多态

  • 9.2 类定义

- 9.2.1 class_name关键字 - 9.2.2 类命名空间 - 9.2.3 内部类 - 9.2.4 类文档

  • 9.3 属性

- 9.3.1 成员变量 - 9.3.2 @export装饰器 - 9.3.3 @exportgroup分组 - 9.3.4 @exportsubgroup子分组 - 9.3.5 @export_category分类 - 9.3.6 属性类型限制 - 9.3.7 属性验证

  • 9.4 方法

- 9.4.1 实例方法 - 9.4.2 静态方法 - 9.4.3 虚方法 - 9.4.4 工具方法

  • 9.5 构造函数

- 9.5.1 _init方法 - 9.5.2 参数化构造 - 9.5.3 构造函数链

  • 9.6 析构函数

- 9.6.1 通知机制 - 9.6.2 清理资源

  • 9.7 访问控制

- 9.7.1 public、private、protected - 9.7.2 GDScript中的命名约定 - 9.7.3 访问器方法

  • 9.8 设计模式入门

- 9.8.1 单例模式 - 9.8.2 工厂模式 - 9.8.3 观察者模式 - 9.8.4 状态模式

第十章:类与继承

  • 10.1 继承基础

- 10.1.1 extends关键字 - 10.1.2 继承层次 - 10.1.3 方法重写 - 10.1.4 super关键字

  • 10.2 节点继承

- 10.2.1 内置节点类型 - 10.2.2 自定义节点类 - 10.2.3 节点脚本附加 - 10.2.4 多重继承限制

  • 10.3 资源继承

- 10.3.1 资源类继承 - 10.3.2 资源实例化 - 10.3.3 资源共享机制

  • 10.4 多态性

- 10.4.1 方法重载 - 10.4.2 运行时多态 - 10.4.3 类型检查

  • 10.5 接口概念

- 10.5.1 Duck Typing - 10.5.2 接口实现方式 - 10.5.3 接口设计模式

  • 10.6 继承设计原则

- 10.6.1 组合优于继承 - 10.6.2 Liskov替换原则 - 10.6.3 继承深度控制

  • 10.7 mixin模式

- 10.7.1 概念与应用 - 10.7.2 Godot中的实现方式

  • 10.8 实战案例

- 10.8.1 基础实体系统 - 10.8.2 状态机基类 - 10.8.3 行为树节点

第十一章:信号系统

  • 11.1 信号基础

- 11.1.1 什么是信号 - 11.1.2 信号与事件的区别 - 11.1.3 信号的优势 - 11.1.4 信号与回调对比

  • 11.2 定义信号

- 11.2.1 signal关键字 - 11.2.2 带参数的信号 - 11.2.3 信号分组

  • 11.3 发射信号

- 11.3.1 emit_signal方法 - 11.3.2 信号参数传递 - 11.3.3 信号返回值

  • 11.4 连接信号

- 11.4.1 编辑器连接 - 11.4.2 代码连接 - 11.4.3 call_deferred连接 - 11.4.4 一次性连接

  • 11.5 信号处理函数

- 11.5.1 命名约定 - 11.5.2 参数绑定 - 11.5.3 信号断开

  • 11.6 内置信号

- 11.6.1 节点生命周期信号 - 11.6.2 UI控件信号 - 11.6.3 动画信号 - 11.6.4 定时器信号

  • 11.7 信号高级用法

- 11.7.1 信号链 - 11.7.2 信号代理 - 11.7.3 信号过滤 - 11.7.4 自定义信号总线

  • 11.8 信号性能

- 11.8.1 信号调用开销 - 11.8.2 大量信号连接优化 - 11.8.3 信号vs直接调用

  • 11.9 信号调试

- 11.9.1 断点调试 - 11.9.2 信号追踪 - 11.9.3 常见问题解决

第十二章:错误处理与调试

  • 12.1 错误类型

- 12.1.1 语法错误 - 12.1.2 运行时错误 - 12.1.3 逻辑错误 - 12.1.4 警告与提示

  • 12.2 错误处理机制

- 12.2.1 返回错误码 - 12.2.2 断言检查 - 12.2.3 异常处理 - 12.2.4 Godot内置错误检查

  • 12.3 调试工具

- 12.3.1 调试器面板 - 12.3.2 断点设置 - 12.3.3 变量监视 - 12.3.4 调用栈查看 - 12.3.5 逐步执行 - 12.3.6 条件断点

  • 12.4 日志输出

- 12.4.1 print函数 - 12.4.2 pusherror/pushwarning - 12.4.3 print_rich富文本输出 - 12.4.4 日志级别 - 12.4.5 输出面板使用

  • 12.5 性能分析

- 12.5.1 性能监视器 - 12.5.2 帧率分析 - 12.5.3 内存分析 - 12.5.4 函数调用统计

  • 12.6 代码调试技巧

- 12.6.1 print调试法 - 12.6.2 状态可视化 - 12.6.3 游戏状态快照 - 12.6.4 远程调试

  • 12.7 单元测试

- 12.7.1 GUT测试框架 - 12.7.2 编写测试用例 - 12.7.3 测试驱动开发 - 12.7.4 持续集成

  • 12.8 常见错误排查

- 12.8.1 空引用错误 - 12.8.2 类型转换错误 - 12.8.3 节点路径错误 - 12.8.4 信号连接问题 - 12.8.5 内存泄漏排查


第三部分:2D游戏开发(约 20 万字)

第十三章:2D场景系统

  • 13.1 2D坐标系

- 13.1.1 像素坐标系 - 13.1.2 坐标原点 - 13.1.3 坐标方向 - 13.1.4 屏幕坐标vs世界坐标 - 13.1.5 坐标转换

  • 13.2 2D视口

- 13.2.1 Viewport2D - 13.2.2 CanvasLayer - 13.2.3 视口缩放 - 13.2.4 多视口管理

  • 13.3 场景树结构

- 13.3.1 根节点选择 - 13.3.2 场景层次设计 - 13.3.3 场景实例化 - 13.3.4 场景替换

  • 13.4 2D渲染管线

- 13.4.1 渲染顺序 - 13.4.2 Z-Index属性 - 13.4.3 Y-Sort - 13.4.4 渲染层 - 13.4.5 批渲染

  • 13.5 场景管理

- 13.5.1 场景切换 - 13.5.2 场景预加载 - 13.5.3 场景实例池 - 13.5.4 场景资源管理

  • 13.6 2D项目设置

- 13.6.1 应用窗口设置 - 13.6.2 渲染设置 - 13.6.2.1 低动态范围 - 13.6.2.2 高动态范围 - 13.6.3 分辨率适配 - 13.6.4 多显示器支持

  • 13.7 2D性能优化

- 13.7.1 Draw Call优化 - 13.7.2 纹理图集 - 13.7.3 批处理 - 13.7.4 LOD(细节层次)

第十四章:节点树架构

  • 14.1 节点概念

- 14.1.1 Node基类 - 14.1.2 节点特性 - 14.1.3 节点生命周期 - 14.1.4 节点引用

  • 14.2 节点关系

- 14.2.1 父子关系 - 14.2.2 兄弟节点 - 14.2.3 节点路径 - 14.2.4 节点引用获取

  • 14.3 节点操作

- 14.3.1 节点添加 - 14.3.2 节点移除 - 14.3.3 节点重命名 - 14.3.4 节点复制 - 14.3.5 节点查找

  • 14.4 节点组

- 14.4.1 添加到组 - 14.4.2 从组移除 - 14.4.3 组内节点查找 - 14.4.4 组的应用场景

  • 14.5 节点通信

- 14.5.1 直接调用 - 14.5.2 信号通信 - 14.5.3 节点树广播 - 14.5.4 全局访问

  • 14.6 节点设计模式

- 14.6.1 单例节点 - 14.6.2 节点池模式 - 14.6.3 节点组合模式 - 14.6.4 节点装饰器模式

  • 14.7 节点优化

- 14.7.1 节点树深度 - 14.7.2 节点数量控制 - 14.7.3 节点暂停优化 - 14.7.4 节点销毁时机

第十五章:精灵与纹理

  • 15.1 纹理基础

- 15.1.1 纹理概念 - 15.1.2 纹理格式 - 15.1.3 纹理导入 - 15.1.4 纹理压缩 - 15.1.5 纹理过滤

  • 15.2 Sprite2D节点

- 15.2.1 基本属性 - 15.2.2 居中对齐 - 15.2.3 翻转与旋转 - 15.2.4 视口裁剪

  • 15.3 AnimatedSprite2D

- 15.3.1 精灵帧集 - 15.3.2 动画播放 - 15.3.3 动画速度 - 15.3.4 动画事件

  • 15.4 SpriteFrames资源

- 15.4.1 创建精灵帧集 - 15.4.2 管理动画 - 15.4.3 帧率控制 - 15.4.4 循环设置

  • 15.5 AtlasTexture

- 15.5.1 图集概念 - 15.5.2 区域定义 - 15.5.3 九宫格拉伸 - 15.5.4 图集分割

  • 15.6 NinePatchRect

- 15.6.1 九宫格原理 - 15.6.2 边距设置 - 15.6.3 自适应缩放 - 15.6.4 应用场景

  • 15.7 Texture2DArray

- 15.7.1 纹理数组概念 - 15.7.2 使用场景 - 15.7.3 性能优势

  • 15.8 精灵优化

- 15.8.1 纹理图集 - 15.8.2 精灵批处理 - 15.8.3 LOD系统 - 15.8.4 内存管理

  • 15.9 实战案例

- 15.9.1 角色动画系统 - 15.9.2 粒子特效系统 - 15.9.3 物品图标系统

第十六章:2D变换与坐标系

  • 16.1 Transform2D

- 16.1.1 变换矩阵 - 16.1.2 变换组成 - 16.1.3 变换操作 - 16.1.4 变换层级

  • 16.2 位置变换

- 16.2.1 position属性 - 16.2.2 global_position - 16.2.3 坐标转换 - 16.2.4 平滑移动

  • 16.3 旋转变换

- 16.3.1 rotation属性 - 16.3.2 rotation_degrees - 16.3.3 角度制vs弧度制 - 16.3.4 向量旋转 - 16.3.5 平滑旋转

  • 16.4 缩放变换

- 16.4.1 scale属性 - 16.4.2 非均匀缩放 - 16.4.3 负缩放 - 16.4.4 缩放中心

  • 16.5 变换顺序

- 16.5.1 平移-旋转-缩放 - 16.5.2 变换累加 - 16.5.3 变换重置

  • 16.6 向量数学

- 16.6.1 Vector2类型 - 16.6.2 向量运算 - 16.6.3 向量归一化 - 16.6.4 向量长度 - 16.6.5 向量插值 - 16.6.6 向量点积与叉积

  • 16.7 坐标系统

- 16.7.1 本地坐标 - 16.7.2 全局坐标 - 16.7.3 屏幕坐标 - 16.7.4 坐标转换函数

  • 16.8 摄像机跟随

- 16.8.1 Camera2D节点 - 16.8.2 摄像机属性 - 16.8.3 平滑跟随 - 16.8.4 摄像机限制 - 16.8.5 多摄像机管理

  • 16.9 2D视觉效果

- 16.9.1 视差滚动 - 16.9.2 屏幕震动 - 16.9.3 慢动作效果 - 16.9.4 时间缩放

第十七章:2D物理系统

  • 17.1 物理系统概述

- 17.1.1 Godot物理引擎 - 17.1.2 物理空间 - 17.1.3 物理步骤 - 17.1.4 物理调试

  • 17.2 静态物体

- 17.2.1 StaticBody2D - 17.2.2 碰撞形状 - 17.2.3 物理材质 - 17.2.4 静态物体应用

  • 17.3 动态物体

- 17.3.1 RigidBody2D - 17.3.2 质量与惯性 - 17.3.3 力与冲量 - 17.3.4 重力设置 - 17.3.5 约束模式

  • 17.4 角色控制

- 17.4.1 CharacterBody2D - 17.4.2 moveandslide方法 - 17.4.3 moveandcollide方法 - 17.4.4 平台移动 - 17.4.5 斜坡处理

  • 17.5 运动学物体

- 17.5.1 KinematicBody2D(已弃用) - 17.5.2 运动学模式 - 17.5.3 速度控制

  • 17.6 物理材质

- 17.6.1 摩擦力 - 17.6.2 弹性(恢复系数) - 17.6.3 粗糙度 - 17.6.4 材质混合

  • 17.7 碰撞响应

- 17.7.1 碰撞检测 - 17.7.2 碰撞信息 - 17.7.3 碰撞处理 - 17.7.4 碰撞回调

  • 17.8 物理关节

- 17.8.1 PinJoint2D - 17.8.2 DampedSpringJoint2D - 17.8.3 GrooveJoint2D - 17.8.4 其他关节类型

  • 17.9 区域与触发器

- 17.9.1 Area2D - 17.9.2 重力区域 - 17.9.3 阻尼区域 - 17.9.4 区域检测

  • 17.10 物理优化

- 17.10.1 物理性能分析 - 17.10.2 碰撞优化 - 17.10.3 物理步骤调整 - 17.10.4 睡眠模式

第十八章:碰撞检测

  • 18.1 碰撞形状

- 18.1.1 CollisionShape2D - 18.1.2 CollisionPolygon2D - 18.1.3 形状类型 - 18.1.3.1 矩形形状 - 18.1.3.2 圆形形状 - 18.1.3.3 胶囊形状 - 18.1.3.4 线段形状 - 18.1.3.5 分离形状 - 18.1.3.6 世界边界形状

  • 18.2 形状资源

- 18.2.1 RectangleShape2D - 18.2.2 CircleShape2D - 18.2.3 CapsuleShape2D - 18.2.4 SegmentShape2D - 18.2.5 SeparationRayShape2D - 18.2.6 WorldBoundaryShape2D - 18.2.7 ConvexPolygonShape2D - 18.2.8 ConcavePolygonShape2D

  • 18.3 碰撞层与遮罩

- 18.3.1 层系统 - 18.3.2 命名层 - 18.3.3 层过滤 - 18.3.4 多层碰撞

  • 18.4 碰撞检测方法

- 18.4.1 空间检测 - 18.4.2 射线检测 - 18.4.3 形状查询 - 18.4.4 多边形相交

  • 18.5 碰撞回调

- 18.5.1 bodyenter/exit - 18.5.2 areaenter/exit - 18.5.3 shapeenter/exit - 18.5.4 碰撞信息获取

  • 18.6 射线检测

- 18.6.1 PhysicsRayQueryParameters2D - 18.6.2 space_state直接状态 - 18.6.3 多射线检测 - 18.6.4 射线调试

  • 18.7 形状转换

- 18.7.1 从精灵生成形状 - 18.7.2 手动绘制形状 - 18.7.3 形状合并 - 18.7.4 形状简化

  • 18.8 碰撞优化

- 18.8.1 简化形状 - 18.8.2 层分离 - 18.8.3 空间分区 - 18.8.4 碰撞频率控制

第十九章:2D动画系统

  • 19.1 AnimationPlayer节点

- 19.1.1 基本概念 - 19.1.2 动画创建 - 19.1.3 动画编辑器 - 19.1.4 动画资源

  • 19.2 动画轨道

- 19.2.1 属性轨道 - 19.2.2 回调轨道 - 19.2.3 Bezier曲线 - 19.2.4 轨道混合

  • 19.3 关键帧

- 19.3.1 关键帧类型 - 19.3.2 关键帧插值 - 19.3.3 Easing函数 - 19.3.4 关键帧复制粘贴

  • 19.4 动画控制

- 19.4.1 播放动画 - 19.4.2 动画暂停与停止 - 19.4.3 动画速度 - 19.4.4 动画方向

  • 19.5 动画混合

- 19.5.1 AnimationTree节点 - 19.5.2 动画节点 - 19.5.3 状态机 - 19.5.4 混合树

  • 19.6 角色动画

- 19.6.1 站立状态 - 19.6.2 行走动画 - 19.6.3 跑步动画 - 19.6.4 跳跃动画 - 19.6.5 攻击动画 - 19.6.6 死亡动画

  • 19.7 动画事件

- 19.7.1 动画回调 - 19.7.2 音效触发 - 19.7.3 特效触发 - 19.7.4 状态改变

  • 19.8 动画优化

- 19.8.1 动画压缩 - 19.8.2 实例化动画 - 19.8.3 动画LOD - 19.8.4 动画缓存

第二十章:TileMap与地图编辑

  • 20.1 TileMap节点

- 20.1.1 TileMap基础 - 20.1.2 TileSet资源 - 20.1.3 瓦片坐标系 - 20.1.4 多层支持

  • 20.2 TileSet编辑器

- 20.2.1 TileSet创建 - 20.2.2 纹理图集导入 - 20.2.3 瓦片定义 - 20.2.4 瓦片属性

  • 20.3 瓦片类型

- 20.3.1 静态瓦片 - 20.3.2 动画瓦片 - 20.3.3 自动瓦片 - 20.3.4 场景瓦片

  • 20.4 自动平铺

- 20.4.1 自动瓦片原理 - 20.4.2 连接规则 - 20.4.3 邻接检查 - 20.4.4 自定义规则

  • 20.5 地图编辑

- 20.5.1 绘制工具 - 20.5.2 选择与填充 - 20.5.3 地图导航 - 20.5.4 撤销重做

  • 20.6 瓦片属性

- 20.6.1 物理层 - 20.6.2 导航层 - 20.6.3 自定义数据 - 20.6.4 运行时修改

  • 20.7 场景瓦片

- 20.7.1 场景作为瓦片 - 20.7.2 瓦片交互 - 20.7.3 动态对象 - 20.7.4 性能考虑

  • 20.8 TileMap优化

- 20.8.1 网格大小 - 20.8.2 视口剔除 - 20.8.3 实例化限制 - 20.8.4 碰撞优化

  • 20.9 高级技巧

- 20.9.1 程序化生成 - 20.9.2 地图流式加载 - 20.9.3 地图压缩 - 20.9.4 自定义渲染器

第二十一章:2D相机系统

  • 21.1 Camera2D基础

- 21.1.1 Camera2D节点 - 21.1.2 相机属性 - 21.1.3 多相机管理 - 21.1.4 相机切换

  • 21.2 相机跟随

- 21.2.1 目标跟随 - 21.2.2 平滑跟随 - 21.2.3 跟随偏移 - 21.2.4 跟循延迟

  • 21.3 相机限制

- 21.3.1 限制边界 - 21.3.2 拖边距 - 21.3.3 死区 - 21.3.4 限制平滑

  • 21.4 相机变焦

- 21.4.1 变焦属性 - 21.4.2 平滑变焦 - 21.4.3 变焦效果 - 21.4.4 动态变焦

  • 21.5 相机抖动

- 21.5.1 屏幕震动原理 - 21.5.2 随机抖动 - 21.5.3 定向抖动 - 21.5.4 衰减效果

  • 21.6 相机特效

- 21.6.1 平移效果 - 21.6.2 旋转效果 - 21.6.3 时间缩放 - 21.6.4 后处理效果

  • 21.7 视差滚动

- 21.7.1 视差原理 - 21.7.2 ParallaxBackground - 21.7.3 ParallaxLayer - 21.7.4 视差深度

  • 21.8 分屏相机

- 21.8.1 分屏实现 - 21.8.2 视口分割 - 21.8.3 屏幕适配 - 21.8.4 性能优化

  • 21.9 相机高级应用

- 21.9.1 缩放地图 - 21.9.2 剧情过场 - 21.9.3 瞄准系统 - 21.9.4 自定义相机

第二十二章:2D游戏实战案例

  • 22.1 项目概述

- 22.1.1 游戏设计 - 22.1.2 核心机制 - 22.1.3 技术选型 - 22.1.4 开发计划

  • 22.2 玩家系统

- 22.2.1 玩家角色创建 - 22.2.2 状态机实现 - 22.2.3 输入处理 - 22.2.4 移动逻辑 - 22.2.5 动画播放

  • 22.3 敌人AI

- 22.3.1 敌人类型设计 - 22.3.2 AI状态机 - 22.3.3 巡逻逻辑 - 22.3.4 追踪逻辑 - 22.3.5 攻击逻辑

  • 22.4 物品系统

- 22.4.1 物品定义 - 22.4.2 物品生成 - 22.4.3 物品拾取 - 22.4.4 物品效果

  • 22.5 关卡设计

- 22.5.1 TileMap关卡 - 22.5.2 关卡元素 - 22.5.3 障碍物设计 - 22.5.4 关卡流程

  • 22.6 游戏系统

- 22.6.1 生命值系统 - 22.6.2 得分系统 - 22.6.3 关卡进度 - 22.6.4 游戏UI

  • 22.7 音频系统

- 22.7.1 背景音乐 - 22.7.2 音效管理 - 22.7.3 音频总线

  • 22.8 数据持久化

- 22.8.1 存档系统 - 22.8.2 设置保存 - 22.8.3 进度跟踪

  • 22.9 游戏优化

- 22.9.1 性能分析 - 22.9.2 优化措施 - 22.9.3 测试与调试

  • 22.10 打包发布

- 22.10.1 平台配置 - 22.10.2 资源导出 - 22.10.3 打包流程


第四部分:3D游戏开发(约 20 万字)

第二十三章:3D场景系统

  • 23.1 3D坐标系

- 23.1.1 左手坐标系 - 23.1.2 坐标轴向 - 23.1.3 旋转方向 - 23.1.4 坐标转换

  • 23.2 3D视口

- 23.2.1 Viewport3D - 23.2.2 视口操作 - 23.2.3 视口模式 - 23.2.4 视口渲染

  • 23.3 3D节点类型

- 23.3.1 Node3D基类 - 23.3.2 常用3D节点 - 23.3.3 节点层次 - 23.3.4 场景组织

  • 23.4 3D渲染管线

- 23.4.1 前向渲染 - 23.4.2 延迟渲染 - 23.4.3 渲染器选择 - 23.4.4 渲染层

  • 23.5 3D项目设置

- 23.5.1 3D模式设置 - 23.5.2 相机设置 - 23.5.3 渲染设置 - 23.5.4 物理设置

  • 23.6 视口特效

- 23.6.1 后处理 - 23.6.2 环境效果 - 23.6.3 屏幕特效

  • 23.7 3D性能

- 23.7.1 性能指标 - 23.7.2 优化策略 - 23.7.3 性能分析

第二十四章:3D节点详解

  • 24.1 基础节点

- 24.1.1 Node3D - 24.1.2 Position3D - 24.1.3 Rotation3D - 24.1.4 Scale3D

  • 24.2 模型节点

- 24.2.1 MeshInstance3D - 24.2.2 MultiMeshInstance3D - 24.2.3 CSG节点 - 24.2.3.1 CSGBox3D - 24.2.3.2 CSGSphere3D - 24.2.3.3 CSGCylinder3D - 24.2.3.4 CSGMesh3D - 24.2.3.5 CSG操作

  • 24.3 光源节点

- 24.3.1 DirectionalLight3D - 24.3.2 OmniLight3D - 24.3.3 SpotLight3D - 24.3.4 Light3D属性

  • 24.4 相机节点

- 24.4.1 Camera3D - 24.4.2 相机属性 - 24.4.3 相机类型 - 24.4.4 相机控制

  • 24.5 物理节点

- 24.5.1 StaticBody3D - 24.5.2 RigidBody3D - 24.5.3 CharacterBody3D - 24.5.4 Area3D

  • 24.6 粒子节点

- 24.6.1 GPUParticles3D - 24.6.2 CPU_particles3D - 24.6.3 粒子属性

  • 24.7 地形节点

- 24.7.1 MeshInstance3D地形 - 24.7.2 程序化地形 - 24.7.3 地形LOD

  • 24.8 导航节点

- 24.8.1 NavigationRegion3D - 24.8.2 NavigationMesh - 24.8.3 NavigationAgent3D

第二十五章:3D变换与坐标系

  • 25.1 Transform3D

- 25.1.1 变换矩阵 - 25.1.2 变换操作 - 25.1.3 变换层级 - 25.1.4 变换组合

  • 25.2 位置变换

- 25.2.1 position属性 - 25.2.2 global_position - 25.2.3 坐标转换 - 25.2.4 平滑移动

  • 25.3 旋转变换

- 25.3.1 欧拉角 - 25.3.2 旋转顺序 - 25.3.3 万向节锁 - 25.3.4 四元数 - 25.3.4.1 四元数基础 - 25.3.4.2 四元数运算 - 25.3.4.3 四元数插值 - 25.3.4.4 四元数应用

  • 25.4 缩放变换

- 25.4.1 scale属性 - 25.4.2 非均匀缩放 - 25.4.3 缩放中心

  • 25.5 向量数学

- 25.5.1 Vector3类型 - 25.5.2 向量运算 - 25.5.3 向量点积与叉积 - 25.5.4 向量投影 - 25.5.5 向量反射

  • 25.6 坐标系统

- 25.6.1 本地坐标 - 25.6.2 全局坐标 - 25.6.3 屏幕坐标 - 25.6.4 坐标转换函数

  • 25.7 相机控制

- 25.7.1 第一人称相机 - 25.7.2 第三人称相机 - 25.7.3 自由相机 - 25.7.4 轨道相机

  • 25.8 3D数学工具

- 25.8.1 Plane平面 - 25.8.2 AABB包围盒 - 25.8.3 射线投射 - 25.8.4 空间查询

第二十六章:网格与模型导入

  • 26.1 网格基础

- 26.1.1 顶点、边、面 - 26.1.2 网格拓扑 - 26.1.3 法线与切线 - 26.1.4 UV坐标

  • 26.2 网格类型

- 26.2.1 PrimitiveMesh - 26.2.1.1 BoxMesh - 26.2.1.2 SphereMesh - 26.2.1.3 CylinderMesh - 26.2.1.4 PlaneMesh - 26.2.1.5 其他图元 - 26.2.2 ArrayMesh - 26.2.3 ImporterMesh

  • 26.3 ArrayMesh创建

- 26.3.1 网格数据结构 - 26.3.2 程序化生成 - 26.3.3 网格操作 - 26.3.4 表面合并

  • 26.4 模型导入

- 26.4.1 支持的格式 - 26.4.1.1 glTF/GLB - 26.4.1.2 OBJ - 26.4.1.3 FBX - 26.4.1.4 其他格式 - 26.4.2 导入设置 - 26.4.3 导入流程 - 26.4.4 后导入处理

  • 26.5 glTF格式

- 26.5.1 glTF优势 - 26.5.2 glTF结构 - 26.5.3 Godot对glTF的支持 - 26.5.4 glTF扩展

  • 26.6 网格优化

- 26.6.1 简化网格 - 26.6.2 合并网格 - 26.6.3 LOD网格 - 26.6.4 网格压缩

  • 26.7 骨骼网格

- 26.7.1 骨骼系统 - 26.7.2 皮肤网格 - 26.7.3 骨骼绑定 - 26.7.4 权重绘制

  • 26.8 实战案例

- 26.8.1 程序化地形生成 - 26.8.2 动态建筑生成 - 26.8.3 模型导入工作流

第二十七章:3D材质与着色器

  • 27.1 材质基础

- 27.1.1 BaseMaterial3D - 27.1.2 ORMMaterial3D - 27.1.3 StandardMaterial3D - 27.1.4 材质属性

  • 27.2 材质属性

- 27.2.1 反照率颜色 - 27.2.2 金属度 - 27.2.3 粗糙度 - 27.2.4 自发光 - 27.2.5 法线贴图 - 27.2.6 环境光遮挡 - 27.2.7 高度贴图 - 27.2.8 清漆 - 27.2.9 亚表面散射

  • 27.3 纹理贴图

- 27.3.1 纹理类型 - 27.3.2 纹理导入 - 27.3.3 纹理通道 - 27.3.4 纹理打包

  • 27.4 材质模式

- 27.4.1 PBR模式 - 27.4.2 Toon模式 - 27.4.3 Spaced模式 - 27.4.4 Unshaded模式

  • 27.5 ShaderMaterial

- 27.5.1 着色器语言 - 27.5.2 着色器编辑器 - 27.5.3 Uniform变量 - 27.5.4 着色器模式

  • 27.6 Godot着色器语言

- 27.6.1 基础语法 - 27.6.2 数据类型 - 27.6.3 内置函数 - 27.6.4 顶点着色器 - 27.6.5 片段着色器

  • 27.7 着色器效果

- 27.7.1 卡通渲染 - 27.7.2 全息效果 - 27.7.3 消隐效果 - 27.7.4 水面效果 - 27.7.5 全局着色器

  • 27.8 材质实例

- 27.8.1 材质复用 - 27.8.2 材质变体 - 27.8.3 运行时修改 - 27.8.4 材质优化

  • 27.9 高级技巧

- 27.9.1 自定义渲染管线 - 27.9.2 后处理着色器 - 27.9.3 计算着色器

第二十八章:3D光照系统

  • 28.1 光照基础

- 28.1.1 光照原理 - 28.1.2 光照模型 - 28.1.3 直接光照 - 28.1.4 间接光照

  • 28.2 光源类型

- 28.2.1 DirectionalLight3D - 28.2.1.1 太阳光 - 28.2.1.2 阴影设置 - 28.2.1.3 级联阴影 - 28.2.2 OmniLight3D - 28.2.2.1 点光源 - 28.2.2.2 衰减设置 - 28.2.2.3 阴影设置 - 28.2.3 SpotLight3D - 28.2.3.1 聚光灯 - 28.2.3.2 圆锥角 - 28.2.3.3 阴影设置

  • 28.3 环境光照

- 28.3.1 WorldEnvironment - 28.3.2 Environment资源 - 28.3.3 天空盒 - 28.3.4 天空 - 28.3.5 环境光

  • 28.4 全局光照

- 28.4.1 SDFGI - 28.4.1.1 SDFGI原理 - 28.4.1.2 SDFGI设置 - 28.4.1.3 性能考虑 - 28.4.2 VoxelGI - 28.4.2.1 体素化 - 28.4.2.2 烘焙流程 - 28.4.2.3 运行时更新 - 28.4.3 LightmapGI - 28.4.3.1 光照贴图 - 28.4.3.2 烘焙流程 - 28.4.3.3 优化技巧

  • 28.5 阴影系统

- 28.5.1 阴影原理 - 28.5.2 阴影质量 - 28.5.3 阴影距离 - 28.5.4 阴影优化

  • 28.6 反射探针

- 28.6.1 ReflectionProbe - 28.6.2 探针设置 - 28.6.3 实时反射 - 28.6.4 烘焙反射

  • 28.7 光照优化

- 28.7.1 光源数量限制 - 28.7.2 阴影优化 - 28.7.3 GI优化 - 28.7.4 LOD光照

  • 28.8 实战案例

- 28.8.1 室内光照 - 28.8.2 室外场景 - 28.8.3 昼夜循环 - 28.8.4 动态光照

第二十九章:3D物理系统

  • 29.1 3D物理引擎

- 29.1.1 PhysicsServer3D - 29.1.2 物理空间 - 29.1.3 物理步骤 - 29.1.4 物理调试

  • 29.2 碰撞形状

- 29.2.1 CollisionShape3D - 29.2.2 形状类型 - 29.2.2.1 BoxShape3D - 29.2.2.2 SphereShape3D - 29.2.2.3 CapsuleShape3D - 29.2.2.4 CylinderShape3D - 29.2.2.5 HeightMapShape3D - 29.2.2.6 ConvexPolygonShape3D - 29.2.2.7 ConcavePolygonShape3D

  • 29.3 物理节点

- 29.3.1 StaticBody3D - 29.3.2 RigidBody3D - 29.3.3 CharacterBody3D - 29.3.4 Area3D

  • 29.4 角色控制

- 29.4.1 角色物理 - 29.4.2 移动逻辑 - 29.4.3 跳跃机制 - 29.4.4 坡度处理 - 29.4.5 梯子系统

  • 29.5 物理材质

- 29.5.1 摩擦力 - 29.5.2 弹性 - 29.5.3 粗糙度 - 29.5.4 吸收

  • 29.6 物理关节

- 29.6.1 Joint3D基类 - 29.6.2 HingeJoint3D - 29.6.3 ConeTwistJoint3D - 29.6.4 Generic6DOFJoint3D - 29.6.5 PinJoint3D - 29.6.6 SliderJoint3D

  • 29.7 车辆物理

- 29.7.1 VehicleBody3D - 29.7.2 车轮系统 - 29.7.3 悬挂系统 - 29.7.4 车辆模拟

  • 29.8 布料模拟

- 29.8.1 SoftBody3D - 29.8.2 网格设置 - 29.8.3 物理参数 - 29.8.4 布料约束

  • 29.9 物理优化

- 29.9.1 碰撞优化 - 29.9.2 睡眠模式 - 29.9.3 子步优化 - 29.9.4 带宽优化

  • 29.10 实战案例

- 29.10.1 物理谜题 - 29.10.2 车辆系统 - 29.10.3 破坏效果

第三十章:3D动画系统

  • 30.1 骨骼动画基础

- 30.1.1 骨架系统 - 30.1.2 骨骼层次 - 30.1.3 皮肤网格 - 30.1.4 权重系统

  • 30.2 Skeleton3D节点

- 30.2.1 骨骼管理 - 30.2.2 骨骼操作 - 30.2.3 IK反向动力学 - 30.2.4 骨骼查询

  • 30.3 SkeletonIK3D

- 30.3.1 IK原理 - 30.3.2 IK设置 - 30.3.3 链式IK - 30.3.4 双足IK

  • 30.4 动画资源

- 30.4.1 Animation资源 - 30.4.2 动画导入 - 30.4.3 动画压缩 - 30.4.4 动画优化

  • 30.5 动画混合

- 30.5.1 AnimationTree - 30.5.2 AnimationNode - 30.5.3 状态机 - 30.5.4 混合树

  • 30.6 面部动画

- 30.6.1 形状键 - 30.6.2 混合形状 - 30.6.3 面部系统

  • 30.7 变形目标

- 30.7.1 MorphTarget - 30.7.2 变形操作 - 30.7.3 运行时变形

  • 30.8 动画事件

- 30.8.1 动画回调 - 30.8.2 事件触发 - 30.8.3 音效同步 - 30.8.4 特效同步

  • 30.9 动画优化

- 30.9.1 动画LOD - 30.9.2 骨骼优化 - 30.9.3 混合优化 - 30.9.4 实例化优化

  • 30.10 实战案例

- 30.10.1 角色动画系统 - 30.10.2 动物动画 - 30.10.3 武器动画

第三十一章:3D相机系统

  • 31.1 Camera3D基础

- 31.1.1 相机属性 - 31.1.2 投影类型 - 31.1.3 视锥体 - 31.1.4 多相机

  • 31.2 相机投影

- 31.2.1 透视投影 - 31.2.2 正交投影 - 31.2.3 投影参数 - 31.2.4 自定义投影

  • 31.3 相机跟随

- 31.3.1 平滑跟随 - 31.3.2 跟随偏移 - 31.3.3 相机晃动 - 31.3.4 阻尼效果

  • 31.4 相机控制

- 31.4.1 第一人称 - 31.4.2 第三人称 - 31.4.3 自由查看 - 31.4.4 轨道相机

  • 31.5 相机特效

- 31.5.1 景深 - 31.5.2 运动模糊 - 31.5.3 晕影 - 31.5.4 色差

  • 31.6 相机切换

- 31.6.1 切换效果 - 31.6.2 过渡动画 - 31.6.3 分屏相机

  • 31.7 VR相机

- 31.7.1 XR支持 - 31.7.2 VR相机设置 - 31.7.3 VR交互

  • 31.8 相机优化

- 31.8.1 视锥体剔除 - 31.8.2 LOD相机 - 31.8.3 渲染优化

  • 31.9 实战案例

- 31.9.1 游戏相机系统 - 31.9.2 剧情相机 - 31.9.3 过场动画


第五部分:用户界面(约 10 万字)

第三十二章:UI系统基础

  • 32.1 Control节点

- 32.1.1 Control基类 - 32.1.2 UI特性 - 32.1.3 坐标系 - 32.1.4 输入处理

  • 32.2 CanvasLayer

- 32.2.1 UI层级 - 32.2.2 多层管理 - 32.2.3 缩放模式

  • 32.3 布局容器

- 32.3.1 HBoxContainer - 32.3.2 VBoxContainer - 32.3.3 GridContainer - 32.3.4 HSplitContainer - 32.3.5 VSplitContainer - 32.3.6 TabContainer - 32.3.7 MarginContainer - 32.3.8 PanelContainer - 32.3.9 ScrollContainer

  • 32.4 锚点与边距

- 32.4.1 锚点系统 - 32.4.2 边距设置 - 32.4.3 预设锚点 - 32.4.4 自适应布局

  • 32.5 最小尺寸

- 32.5.1 customminimumsize - 32.5.2 自适应内容 - 32.5.3 内容溢出

  • 32.6 尺寸标志

- 32.6.1 SizeFlags - 32.6.2 ShrinkBegin/Center/End - 32.6.3 Fill/Expand - 32.6.4 自定义行为

  • 32.7 UI输入

- 32.7.1 输入路由 - 32.7.2 焦点管理 - 32.7.3 输入捕获 - 32.7.4 焦点导航

  • 32.8 UI主题

- 32.8.1 Theme资源 - 32.8.2 主题类型 - 32.8.3 主题继承 - 32.8.4 运行时修改

  • 32.9 实战案例

- 32.9.1 自适应UI - 32.9.2 复杂布局 - 32.9.3 UI架构

第三十三章:控件详解

  • 33.1 基础控件

- 33.1.1 Label - 33.1.2 LineEdit - 33.1.3 TextEdit - 33.1.4 RichTextLabel - 33.1.5 ProgressBar - 33.1.6 TextureProgressBar

  • 33.2 按钮控件

- 33.2.1 Button - 33.2.2 CheckBox - 33.2.3 CheckButton - 33.2.4 RadioButton - 33.2.5 OptionButton - 33.2.6 MenuButton - 33.2.7 LinkButton

  • 33.3 范围控件

- 33.3.1 Slider - 33.3.2 HSlider/VSlider - 33.3.3 SpinBox - 33.3.4 ScrollBar

  • 33.4 列表控件

- 33.4.1 ItemList - 33.4.2 Tree - 33.4.3 TreeItem - 33.4.4 自定义列表

  • 33.5 菜单控件

- 33.5.1 PopupMenu - 33.5.2 PopupPanel - 33.5.3 Window - 33.5.4 AcceptDialog - 33.5.5 ConfirmationDialog

  • 33.6 选择控件

- 33.6.1 ColorPicker - 33.6.2 ColorPickerButton - 33.6.3 ColorRect

  • 33.7 图形控件

- 33.7.1 TextureRect - 33.7.2 NinePatchRect - 33.7.3 Polygon2D - 33.7.4 VideoStreamPlayer

  • 33.8 其他控件

- 33.8.1 Separator - 33.8.2 HSeparator/VSeparator - 33.8.3 ReferenceRect - 33.8.4 Panel - 33.8.5 TextureFrame

  • 33.9 控件优化

- 33.9.1 实例化优化 - 33.9.2 渲染优化 - 33.9.3 更新频率

第三十四章:UI布局管理

  • 34.1 布局原则

- 34.1.1 响应式设计 - 34.1.2 移动优先 - 34.1.3 多分辨率适配

  • 34.2 容器布局

- 34.2.1 流式布局 - 34.2.2 网格布局 - 34.2.3 绝对布局 - 34.2.4 混合布局

  • 34.3 自适应策略

- 34.3.1 缩放模式 - 34.3.2 保持比例 - 34.3.3 内容适配

  • 34.4 布局工具

- 34.4.1 控件拖拽 - 34.4.2 对齐工具 - 34.4.3 快捷键

  • 34.5 布局模式

- 34.5.1 预设锚点 - 34.5.2 自定义锚点 - 34.5.3 容器填充

  • 34.6 响应式UI

- 34.6.1 断点设计 - 34.6.2 布局切换 - 34.6.3 适配检测

  • 34.7 虚拟分辨率

- 34.7.1 设计分辨率 - 34.7.2 缩放适配 - 34.7.3 纵横比

  • 34.8 UI调试

- 34.8.1 可视化调试 - 34.8.2 布局检查 - 34.8.3 性能分析

第三十五章:主题与样式

  • 35.1 主题系统

- 35.1.1 Theme资源 - 35.1.2 主题类型 - 35.1.3 主题继承 - 35.1.4 主题覆盖

  • 35.2 主题类型

- 35.2.1 内置主题类型 - 35.2.2 自定义类型 - 35.2.3 类型命名

  • 35.3 主题属性

- 35.3.1 颜色属性 - 35.3.2 字体属性 - 35.3.3 字体大小 - 35.3.4 图标 - 35.3.5 样式盒 - 35.3.5.1 StyleBoxFlat - 35.3.5.2 StyleBoxTexture - 35.3.5.3 StyleBoxLine

  • 35.4 样式盒

- 35.4.1 样式盒属性 - 35.4.2 边框设置 - 35.4.3 圆角 - 35.4.4 阴影

  • 35.5 字体系统

- 35.5.1 字体导入 - 35.5.2 动态字体 - 35.5.3 位图字体 - 35.5.4 字体回退

  • 35.6 主题编辑器

- 35.6.1 主题编辑器界面 - 35.6.2 预览功能 - 35.6.3 导入导出

  • 35.7 主题最佳实践

- 35.7.1 主题组织 - 35.7.2 主题复用 - 35.7.3 主题维护 - 35.7.4 主题性能

  • 35.8 实战案例

- 35.8.1 深色主题 - 35.8.2 浅色主题 - 35.8.3 自定义风格 - 35.8.4 主题切换

第三十六章:UI动画

  • 36.1 UI动画基础

- 36.1.1 Tween节点 - 36.1.2 动画原理 - 36.1.3 性能考虑

  • 36.2 Tween动画

- 36.2.1 属性动画 - 36.2.2 回调动画 - 36.2.3 并行与串行 - 36.2.4 动画链

  • 36.3 缓动函数

- 36.3.1 Easing类型 - 36.3.2 自定义Easing - 36.3.3 贝塞尔曲线

  • 36.4 动画效果

- 36.4.1 淡入淡出 - 36.4.2 滑动效果 - 36.4.3 缩放效果 - 36.4.4 旋转效果 - 36.4.5 弹跳效果

  • 36.5 过渡动画

- 36.5.1 页面切换 - 36.5.2 窗口打开/关闭 - 36.5.3 控件显示/隐藏

  • 36.6 UI特效

- 36.6.1 粒子效果 - 36.6.2 震动效果 - 36.6.3 闪烁效果

  • 36.7 动画优化

- 36.7.1 批处理动画 - 36.7.2 动画池 - 36.7.3 LOD动画

  • 36.8 实战案例

- 36.8.1 过渡系统 - 36.8.2 反馈动画 - 36.8.3 UI特效系统


第六部分:高级功能(约 15 万字)

第三十七章:资源管理系统

  • 37.1 资源概念

- 37.1.1 Resource基类 - 37.1.2 资源特性 - 37.1.3 资源生命周期 - 37.1.4 资源引用

  • 37.2 内置资源类型

- 37.2.1 纹理资源 - 37.2.2 材质资源 - 37.2.3 网格资源 - 37.2.4 动画资源 - 37.2.5 音频资源 - 37.2.6 脚本资源

  • 37.3 资源加载

- 37.3.1 load函数 - 37.3.2 预加载 - 37.3.3 异步加载 - 37.3.4 线程加载

  • 37.4 资源导入

- 37.4.1 导入流程 - 37.4.2 导入设置 - 37.4.3 自定义导入器 - 37.4.4 后导入脚本

  • 37.5 资源管理

- 37.5.1 资源缓存 - 37.5.2 资源卸载 - 37.5.3 引用计数 - 37.5.4 资源池

  • 37.6 自定义资源

- 37.6.1 Resource类 - 37.6.2 自定义属性 - 37.6.3 资源保存 - 37.6.4 资源工具

  • 37.7 资源优化

- 37.7.1 资源压缩 - 37.7.2 资源图集 - 37.7.3 资源实例化 - 37.7.4 资源流式加载

  • 37.8 资源调试

- 37.8.1 资源监视器 - 37.8.2 引用追踪 - 37.8.3 内存分析

  • 37.9 实战案例

- 37.9.1 资源管理系统 - 37.9.2 异步加载系统 - 37.9.3 资源热更新

第三十八章:文件系统操作

  • 38.1 Godot文件系统

- 38.1.1 res://协议 - 38.1.2 user://协议 - 38.1.3 文件访问权限 - 38.1.4 跨平台差异

  • 38.2 FileAccess类

- 38.2.1 文件打开 - 38.2.2 文件读写 - 38.2.3 文件操作 - 38.2.4 文件属性

  • 38.3 DirAccess类

- 38.3.1 目录操作 - 38.3.2 文件枚举 - 38.3.3 目录属性 - 38.3.4 路径操作

  • 38.4 JSON操作

- 38.4.1 JSON解析 - 38.4.2 JSON生成 - 38.4.3 JSON编码 - 38.4.4 常见问题

  • 38.5 ConfigFile

- 38.5.1 配置文件格式 - 38.5.2 读写配置 - 38.5.3 配置管理

  • 38.6 存档系统

- 38.6.1 存档设计 - 38.6.2 数据序列化 - 38.6.3 存档加密 - 38.6.4 存档版本管理

  • 38.7 文件对话框

- 38.7.1 FileDialog - 38.7.2 自定义对话框 - 38.7.3 文件过滤

  • 38.8 资源导出

- 38.8.1 export组 - 38.8.2 条件导出 - 38.8.3 资源优化

  • 38.9 实战案例

- 38.9.1 存档系统 - 38.9.2 配置管理 - 38.9.3 模组系统

第三十九章:多线程与并发

  • 39.1 多线程基础

- 39.1.1 线程概念 - 39.1.2 Godot线程模型 - 39.1.3 线程安全 - 39.1.4 死锁问题

  • 39.2 Thread类

- 39.2.1 线程创建 - 39.2.2 线程启动 - 39.2.3 线程等待 - 39.2.4 线程终止

  • 39.3 Mutex互斥锁

- 39.3.1 Mutex概念 - 39.3.2 锁的使用 - 39.3.3 死锁避免 - 39.3.4 递归锁

  • 39.4 Semaphore信号量

- 39.4.1 信号量概念 - 39.4.2 信号量操作 - 39.4.3 应用场景

  • 39.5 线程通信

- 39.5.1 call_deferred - 39.5.2 信号通信 - 39.5.3 共享数据 - 39.5.4 消息队列

  • 39.6 WorkerThreadPool

- 39.6.1 线程池概念 - 39.6.2 任务提交 - 39.6.3 任务组 - 39.6.4 等待完成

  • 39.7 并发模式

- 39.7.1 生产者-消费者 - 39.7.2 工作窃取 - 39.7.3 管道模式

  • 39.8 线程安全数据结构

- 39.8.1 线程安全数组 - 39.8.2 线程安全字典 - 39.8.3 原子操作

  • 39.9 实战案例

- 39.9.1 后台加载 - 39.9.2 并行计算 - 39.9.3 异步任务系统

第四十章:网络编程基础

  • 40.1 网络基础

- 40.1.1 网络协议 - 40.1.2 TCP与UDP - 40.1.3 端口与套接字 - 40.1.4 网络延迟

  • 40.2 WebSocket

- 40.2.1 WebSocket概念 - 40.2.2 WebSocketPeer - 40.2.3 数据收发 - 40.2.4 状态管理

  • 40.3 HTTP请求

- 40.3.1 HTTPClient - 40.3.2 HTTPRequest节点 - 40.3.3 REST API调用 - 40.3.4 请求处理

  • 40.4 UPNP

- 40.4.1 NAT穿透 - 40.4.2 UPNPDevice - 40.4.3 端口映射

  • 40.5 WebRTC

- 40.5.1 WebRTC概念 - 40.5.2 WebRTCPeerConnection - 40.5.3 数据通道 - 40.5.4 点对点通信

  • 40.6 网络同步

- 40.6.1 状态同步 - 40.6.2 输入同步 - 40.6.3 时间同步 - 40.6.4 预测与回滚

  • 40.7 网络优化

- 40.7.1 数据压缩 - 40.7.2 带宽优化 - 40.7.3 延迟补偿

  • 40.8 网络调试

- 40.8.1 网络监视器 - 40.8.2 数据包分析 - 40.8.3 模拟网络

  • 40.9 实战案例

- 40.9.1 聊天室 - 40.9.2 排行榜 - 40.9.3 在线存档

第四十一章:AI与导航系统

  • 41.1 AI基础

- 41.1.1 AI概念 - 41.1.2 AI类型 - 41.1.3 AI架构 - 41.1.4 行为树

  • 41.2 状态机

- 41.2.1 状态机概念 - 41.2.2 状态转换 - 41.2.3 层次状态机 - 41.2.4 并行状态机

  • 41.3 行为树

- 41.3.1 行为树节点 - 41.3.2 行为树编辑 - 41.3.3 运行时行为树 - 41.3.4 可视化调试

  • 41.4 导航网格

- 41.4.1 NavigationMesh - 41.4.2 烘焙导航 - 41.4.3 导航查询 - 41.4.4 动态更新

  • 41.5 NavigationAgent3D

- 41.5.1 导航代理 - 41.5.2 寻路逻辑 - 41.5.3 路径跟随 - 41.5.4 避障

  • 41.6 A*寻路

- 41.6.1 A*算法 - 41.6.2 启发式函数 - 41.6.3 寻路优化

  • 41.7 感知系统

- 41.7.1 视觉感知 - 41.7.2 听觉感知 - 41.7.3 探测范围

  • 41.8 AI决策

- 41.8.1 决策树 - 41.8.2 模糊逻辑 - 41.8.3 有限状态机 - 41.8.4 规则系统

  • 41.9 实战案例

- 41.9.1 敌人AI - 41.9.2 NPC系统 - 41.9.3 群体AI

第四十二章:着色器语言入门

  • 42.1 着色器基础

- 42.1.1 着色器概念 - 42.1.2 渲染管线 - 42.1.3 Godot着色器 - 42.1.4 着色器语言

  • 42.2 基础语法

- 42.2.1 数据类型 - 42.2.2 变量与常量 - 42.2.3 函数 - 42.2.4 控制流程

  • 42.3 内置函数

- 42.3.1 数学函数 - 42.3.2 纹理函数 - 42.3.3 向量函数 - 42.3.4 几何函数

  • 42.4 内置变量

- 42.4.1 顶点着色器变量 - 42.4.2 片段着色器变量 - 42.4.3 Uniform变量

  • 42.5 顶点着色器

- 42.5.1 顶点处理 - 42.5.2 顶点变换 - 42.5.3 顶点动画

  • 42.6 片段着色器

- 42.6.1 像素着色 - 42.6.2 纹理采样 - 42.6.3 光照计算

  • 42.7 特殊函数

- 42.7.1 vertex函数 - 42.7.2 fragment函数 - 42.7.3 light函数 - 42.7.4 process函数

  • 42.8 着色器技巧

- 42.8.1 纹理图集 - 42.8.2 距离场 - 42.8.3 噪声函数 - 42.8.4 混合模式

  • 42.9 实战案例

- 42.9.1 水面效果 - 42.9.2 全息效果 - 42.9.3 卡通渲染 - 42.9.4 后处理效果

第四十三章:自定义节点

  • 43.1 节点扩展

- 43.1.1 继承现有节点 - 43.1.2 自定义功能 - 43.1.3 节点脚本

  • 43.2 节点注册

- 43.2.1 class_name - 43.2.2 图标设置 - 43.2.3 节点类别

  • 43.3 自定义属性

- 43.3.1 @export变量 - 43.3.2 自定义检查器 - 43.3.3 属性验证 - 43.3.4 属性分组

  • 43.4 虚方法重写

- 43.4.1 ready - 43.4.2 process - 43.4.3 physicsprocess - 43.4.4 entertree/exittree - 43.4.5 其他虚方法

  • 43.5 节点编辑器

- 43.5.1 工具模式 - 43.5.2 编辑器插件 - 43.5.3 可视化编辑

  • 43.6 节点通信

- 43.6.1 自定义信号 - 43.6.2 节点接口 - 43.6.3 依赖注入

  • 43.7 节点优化

- 43.7.1 性能考虑 - 43.7.2 缓存策略 - 43.7.3 懒加载

  • 43.8 实战案例

- 43.8.1 自定义控件 - 43.8.2 自定义物理节点 - 43.8.3 自定义渲染节点

第四十四章:插件开发

  • 44.1 插件基础

- 44.1.1 插件概念 - 44.1.2 插件结构 - 44.1.3 插件生命周期 - 44.1.4 插件配置

  • 44.2 EditorPlugin类

- 44.2.1 插件入口 - 44.2.2 初始化与清理 - 44.2.3 插件设置 - 44.2.4 插件状态

  • 44.3 编辑器扩展

- 44.3.1 菜单项 - 44.3.2 工具栏 - 44.3.3 上下文菜单 - 44.3.4 热键绑定

  • 44.4 自定义面板

- 44.4.1 面板创建 - 44.4.2 UI构建 - 44.4.3 面板通信

  • 44.5 自定义检查器

- 44.5.1 属性编辑器 - 44.5.2 自定义绘制 - 44.5.3 属性验证

  • 44.6 自定义导入器

- 44.6.1 EditorImportPlugin - 44.6.2 导入流程 - 44.6.3 资源生成

  • 44.7 自动化工具

- 44.7.1 批处理 - 44.7.2 代码生成 - 44.7.3 数据转换

  • 44.8 插件调试

- 44.8.1 调试方法 - 44.8.2 错误处理 - 44.8.3 插件日志

  • 44.9 实战案例

- 44.9.1 资源浏览器 - 44.9.2 场景编辑工具 - 44.9.3 自动化构建工具

第四十五章:GDExtension

  • 45.1 GDExtension概述

- 45.1.1 什么是GDExtension - 45.1.2 GDExtension vs GDScript - 45.1.3 支持的语言 - 45.1.4 性能优势

  • 45.2 环境搭建

- 45.2.1 开发环境 - 45.2.2 依赖库 - 45.2.3 项目配置

  • 45.3 C++扩展

- 45.3.1 类定义 - 45.3.2 方法绑定 - 45.3.3 属性注册 - 45.3.4 信号绑定

  • 45.4 数据类型转换

- 45.4.1 基本类型 - 45.4.2 容器类型 - 45.4.3 节点引用 - 45.4.4 资源引用

  • 45.5 内存管理

- 45.5.1 引用计数 - 45.5.2 内存分配 - 45.5.3 内存泄漏防范

  • 45.6 多线程

- 45.6.1 线程创建 - 45.6.2 线程安全 - 45.6.3 与主线程通信

  • 45.7 编译与调试

- 45.7.1 编译配置 - 45.7.2 调试技巧 - 45.7.3 性能分析

  • 45.8 其他语言扩展

- 45.8.1 Rust扩展 - 45.8.2 Go扩展 - 45.8.3 C#扩展

  • 45.9 实战案例

- 45.9.1 性能优化模块 - 45.9.2 原生功能模块 - 45.9.3 第三方库集成


第七部分:性能优化(约 5 万字)

第四十六章:性能分析工具

  • 46.1 性能监视器

- 46.1.1 监视器面板 - 46.1.2 性能指标 - 46.1.3 自定义监控

  • 46.2 调试器

- 46.2.1 调试器面板 - 46.2.2 性能分析器 - 46.2.3 网络分析器 - 46.2.4 视觉分析器

  • 46.3 帧率分析

- 46.3.1 FPS监控 - 46.3.2 帧时间 - 46.3.3 帧稳定性

  • 46.4 内存分析

- 46.4.1 内存使用 - 46.4.2 资源内存 - 46.4.3 内存泄漏检测

  • 46.5 渲染分析

- 46.5.1 Draw Calls - 46.5.2 顶点数 - 46.5.3 纹理内存 - 46.5.4 着色器性能

  • 46.6 物理分析

- 46.6.1 物理步骤 - 46.6.2 碰撞检测 - 46.6.3 物理性能

  • 46.7 脚本分析

- 46.7.1 函数调用统计 - 46.7.2 脚本执行时间 - 46.7.3 热点识别

  • 46.8 自定义分析

- 46.8.1 自定义计数器 - 46.8.2 事件追踪 - 46.8.3 性能快照

第四十七章:渲染性能优化

  • 47.1 Draw Call优化

- 47.1.1 批渲染原理 - 47.1.2 材质合并 - 47.1.3 纹理图集 - 47.1.4 静态批处理

  • 47.2 纹理优化

- 47.2.1 纹理压缩 - 47.2.2 纹理尺寸 - 47.2.3 Mipmap - 47.2.4 纹理格式

  • 47.3 网格优化

- 47.3.1 多边形数量 - 47.3.2 LOD系统 - 47.3.3 网格简化 - 47.3.4 网格合并

  • 47.4 着色器优化

- 47.4.1 着色器复杂度 - 47.4.2 分支优化 - 47.4.3 纹理查找优化 - 47.4.4 预计算

  • 47.5 光照优化

- 47.5.1 光源数量 - 47.5.2 阴影优化 - 47.5.3 实时光照 - 47.5.4 烘焙光照

  • 47.6 相机优化

- 47.6.1 视锥体剔除 - 47.6.2 遮挡剔除 - 47.6.3 渲染距离 - 47.6.4 屏幕分辨率

  • 47.7 后处理优化

- 47.7.1 后处理开销 - 47.7.2 特效优化 - 47.7.3 抗锯齿优化

  • 47.8 移动端优化

- 47.8.1 移动GPU特性 - 47.8.2 移动渲染设置 - 47.8.3 移动特有优化

第四十八章:脚本性能优化

  • 48.1 GDScript性能

- 48.1.1 性能特点 - 48.1.2 性能基准 - 48.1.3 瓶颈识别

  • 48.2 优化技巧

- 48.2.1 减少调用 - 48.2.2 缓存引用 - 48.2.3 避免重复计算 - 48.2.4 使用内置函数

  • 48.3 数据结构优化

- 48.3.1 数组vs字典 - 48.3.2 PackedArray - 48.3.3 对象池

  • 48.4 循环优化

- 48.4.1 减少循环次数 - 48.4.2 循环展开 - 48.4.3 提前退出

  • 48.5 字符串优化

- 48.5.1 字符串连接 - 48.5.2 字符串格式化 - 48.5.3 字符串缓存

  • 48.6 信号优化

- 48.6.1 信号连接管理 - 48.6.2 避免信号滥用 - 48.6.3 信号替代方案

  • 48.7 场景优化

- 48.7.1 场景实例化 - 48.7.2 场景缓存 - 48.7.3 场景切换优化

  • 48.8 性能工具

- 48.8.1 性能分析器 - 48.8.2 基准测试 - 48.8.3 性能对比

第四十九章:内存管理

  • 49.1 Godot内存模型

- 49.1.1 引用计数 - 49.1.2 垃圾回收 - 49.1.3 内存分配

  • 49.2 资源内存

- 49.2.1 资源加载 - 49.2.2 资源卸载 - 49.2.3 资源复用 - 49.2.4 资源池

  • 49.3 节点内存

- 49.3.1 节点创建 - 49.3.2 节点销毁 - 49.3.3 节点队列 - 49.3.4 节点复用

  • 49.4 纹理内存

- 49.4.1 纹理内存占用 - 49.4.2 纹理压缩 - 49.4.3 纹理流式加载 - 49.4.4 纹理卸载

  • 49.5 网格内存

- 49.5.1 网格内存占用 - 49.5.2 网格简化 - 49.5.3 网格压缩

  • 49.6 脚本内存

- 49.6.1 对象内存 - 49.6.2 变量内存 - 49.6.3 函数内存

  • 49.7 内存泄漏检测

- 49.7.1 常见泄漏原因 - 49.7.2 泄漏检测方法 - 49.7.3 泄漏预防

  • 49.8 内存优化

- 49.8.1 内存预算 - 49.8.2 内存复用 - 49.8.3 内存压缩

第五十章:平台特定优化

  • 50.1 PC平台优化

- 50.1.1 桌面设置 - 50.1.2 显卡特性 - 50.1.3 多核优化

  • 50.2 移动平台优化

- 50.2.1 移动GPU限制 - 50.2.2 电池优化 - 50.2.3 移动纹理格式 - 50.2.4 移动设置

  • 50.3 Web平台优化

- 50.3.1 WebGL限制 - 50.3.2 加载优化 - 50.3.3 包体大小 - 50.3.4 WebAssembly

  • 50.4 VR平台优化

- 50.4.1 VR性能要求 - 50.4.2 VR渲染优化 - 50.4.3 VR交互优化

  • 50.5 平台适配

- 50.5.1 条件代码 - 50.5.2 平台检测 - 50.5.3 资源变体 - 50.5.4 平台特定设置

  • 50.6 低端设备优化

- 50.6.1 性能分级 - 50.6.2 画质设置 - 50.6.3 简化特效

  • 50.7 跨平台测试

- 50.7.1 平台兼容性 - 50.7.2 性能对比 - 50.7.3 问题排查


第八部分:项目实战(约 5 万字)

第五十一章:完整2D游戏案例

  • 51.1 游戏设计

- 51.1.1 游戏概念 - 51.1.2 核心玩法 - 51.1.3 目标平台 - 51.1.4 技术选型

  • 51.2 项目架构

- 51.2.1 目录结构 - 51.2.2 场景组织 - 51.2.3 资源管理 - 51.2.4 自动加载

  • 51.3 核心系统

- 51.3.1 玩家系统 - 51.3.2 敌人系统 - 51.3.3 关卡系统 - 51.3.4 UI系统 - 51.3.5 音频系统

  • 51.4 游戏机制

- 51.4.1 移动系统 - 51.4.2 战斗系统 - 51.4.3 物品系统 - 51.4.4 进度系统

  • 51.5 关卡设计

- 51.5.1 TileMap设计 - 51.5.2 关卡流程 - 51.5.3 难度曲线

  • 51.6 数据系统

- 51.6.1 存档系统 - 51.6.2 设置系统 - 51.6.3 成就系统

  • 51.7 美术集成

- 51.7.1 精灵管理 - 51.7.2 动画集成 - 51.7.3 特效系统

  • 51.8 音频系统

- 51.8.1 背景音乐 - 51.8.2 音效管理 - 51.8.3 音频混音

  • 51.9 测试与优化

- 51.9.1 游戏测试 - 51.9.2 性能优化 - 51.9.3 Bug修复

  • 51.10 打包发布

- 51.10.1 平台配置 - 51.10.2 资源导出 - 51.10.3 打包流程 - 51.10.4 发布策略

第五十二章:完整3D游戏案例

  • 52.1 游戏设计

- 52.1.1 游戏概念 - 52.1.2 核心玩法 - 52.1.3 艺术风格 - 52.1.4 技术目标

  • 52.2 项目架构

- 52.2.1 模块化设计 - 52.2.2 场景管理 - 52.2.3 资源工作流

  • 52.3 3D场景系统

- 52.3.1 环境设计 - 52.3.2 光照设置 - 52.3.3 地形系统

  • 52.4 角色系统

- 52.4.1 3D角色模型 - 52.4.2 角色控制器 - 52.4.3 动画系统 - 52.4.4 相机系统

  • 52.5 物理系统

- 52.5.1 碰撞设置 - 52.5.2 物理交互 - 52.5.3 物理优化

  • 52.6 AI系统

- 52.6.1 导航系统 - 52.6.2 敌人AI - 52.6.3 行为树

  • 52.7 游戏机制

- 52.7.1 战斗系统 - 52.7.2 物品系统 - 52.7.3 任务系统

  • 52.8 UI系统

- 52.8.1 HUD设计 - 52.8.2 菜单系统 - 52.8.3 交互UI

  • 52.9 音频系统

- 52.9.1 3D音频 - 52.9.2 空间音频 - 52.9.3 音频混音

  • 52.10 后处理

- 52.10.1 色调映射 - 52.10.2 泛光效果 - 52.10.3 其他特效

  • 52.11 优化与发布

- 52.11.1 性能优化 - 52.11.2 内存优化 - 52.11.3 平台发布

第五十三章:游戏发布与部署

  • 53.1 导出配置

- 53.1.1 导出模板 - 53.1.2 平台配置 - 53.1.3 签名设置 - 53.1.4 权限设置

  • 53.2 Windows导出

- 53.2.1 Windows配置 - 53.2.2 打包设置 - 53.2.3 安装包制作 - 53.2.4 数字签名

  • 53.3 macOS导出

- 53.3.1 macOS配置 - 53.3.2 代码签名 - 53.3.3 公证流程 - 53.3.4 App Store

  • 53.4 Linux导出

- 53.4.1 Linux配置 - 53.4.2 AppImage - 53.4.3 打包工具 - 53.4.4 Snap包

  • 53.5 Android导出

- 53.5.1 SDK配置 - 53.5.2 签名配置 - 53.5.3 AAB与APK - 53.5.4 Google Play

  • 53.6 iOS导出

- 53.6.1 Xcode配置 - 53.6.2 证书配置 - 53.6.3 App Store Connect - 53.6.4 TestFlight

  • 53.7 Web导出

- 53.7.1 WebGL配置 - 53.7.2 PWA支持 - 53.7.3 托管部署 - 53.7.4 CDN优化

  • 53.8 资源优化

- 53.8.1 资源压缩 - 53.8.2 资源分割 - 53.8.3 资源更新 - 53.8.4 DLC设计

  • 53.9 版本管理

- 53.9.1 版本号系统 - 53.9.2 更新策略 - 53.9.3 热更新

  • 53.10 发布流程

- 53.10.1 测试流程 - 53.10.2 QA测试 - 53.10.3 发布检查清单 - 53.10.4 上线后维护


附录(约 10 万字)

附录A:Godot术语表

  • A.1 通用术语
  • A.2 编辑器术语
  • A.3 节点术语
  • A.4 渲染术语
  • A.5 物理术语
  • A.6 脚本术语
  • A.7 网络术语

附录B:常用资源下载

  • B.1 官方资源

- B.1.1 Godot官网 - B.1.2 文档中心 - B.1.3 下载中心 - B.1.4 模板中心

  • B.2 第三方资源

- B.2.1 资产商店 - B.2.2 示例项目 - B.2.3 教程资源 - B.2.4 工具库

  • B.3 美术资源

- B.3.1 免费素材网站 - B.3.2 纹理资源 - B.3.3 模型资源 - B.3.4 音频资源

  • B.4 学习资源

- B.4.1 在线课程 - B.4.2 视频教程 - B.4.3 书籍推荐 - B.4.4 社区论坛

附录C:常见问题与解决方法

  • C.1 安装与配置问题
  • C.2 编辑器使用问题
  • C.3 脚本编写问题
  • C.4 2D开发问题
  • C.5 3D开发问题
  • C.6 性能优化问题
  • C.7 导出发布问题
  • C.8 平台特定问题

附录D:GDScript快速参考

  • D.1 语法速查
  • D.2 内置函数
  • D.3 常用类
  • D.4 代码片段
  • D.5 最佳实践

附录E:着色器语言参考

  • E.1 语法参考
  • E.2 内置变量
  • E.3 内置函数
  • E.4 常用特效
  • E.5 优化技巧

附录F:项目模板

  • F.1 2D游戏模板
  • F.2 3D游戏模板
  • F.3 UI应用模板
  • F.4 网络应用模板
  • F.5 工具应用模板

总计:53个主要章节 + 6个附录

预计字数分配:

  • 第一部分(入门):约 10 万字
  • 第二部分(GDScript):约 15 万字
  • 第三部分(2D开发):约 20 万字
  • 第四部分(3D开发):约 20 万字
  • 第五部分(UI):约 10 万字
  • 第六部分(高级):约 15 万字
  • 第七部分(优化):约 5 万字
  • 第八部分(实战):约 5 万字
  • 附录部分:约 10 万字

总计:约 110 万字


说明:

  1. 本目录涵盖了Godot 4.x的所有核心功能和高级主题
  2. 每章都包含从基础概念到高级应用的完整内容
  3. 每章末尾都配有实战练习和案例分析
  4. 目录结构既适合系统学习,也适合作为参考手册使用
  5. 可以根据读者需求选择性阅读特定章节

更新日志:

  • 2025年1月13日:创建完整目录,预计110万字
← 返回目录