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 万字
说明:
- 本目录涵盖了Godot 4.x的所有核心功能和高级主题
- 每章都包含从基础概念到高级应用的完整内容
- 每章末尾都配有实战练习和案例分析
- 目录结构既适合系统学习,也适合作为参考手册使用
- 可以根据读者需求选择性阅读特定章节
更新日志:
- 2025年1月13日:创建完整目录,预计110万字