posts

游戏客户端 Godot 专题导航:从 2D 光照到上线合规的 257 篇索引

本导航把 content/posts/game/client/godot 下的 70 篇 Godot 客户端文章按主题重新编排,覆盖场景架构、渲染与可见性、资源导入、2D 与 3D 玩法、UI 与可访问性、音频动画演出、存档数据、网络平台、发布诊断十个方向。每篇都给出真实 slug 链接与一句话核心内容,并附分角色阅读路径,方便从原型走向商业项目的团队快速定位到需要的那一篇。

这个目录是「用 Godot 做商业级游戏客户端」的实战笔记集合,写作时间集中在 2025 年 11 月到 2026 年 5 月,作者以中型项目的改造经历为背景,回答的是原型跑通之后才会浮现的问题:Node 树怎么组织才不失控、渲染器怎么选、存档几年后还能不能读、移动端真机为什么掉帧、发布前到底要体检哪些项。它适合已经在写 Godot 但正被工程问题拖住的开发者、需要给客户端定规范的技术负责人,以及从 Unity 或 Cocos 迁移过来想先看清坑位的同学。使用方式很简单:先看下面的速览确定自己在哪个阶段,再按主题小节跳转到具体文章,每篇都从「为什么会变成真实问题」讲起,落到可执行的取舍与清单。

专题速览

项目内容
本目录直接文章70 篇
含子目录 2026 合计257 篇
时间跨度2025-11 至 2026-05,横跨 Godot 4 项目从立项到上线的完整周期
主题分组10 个(架构、渲染、资源、2D、3D、UI、音频动画、存档、网络平台、发布诊断)
内容形态以问题驱动为主,先讲场景与失败案例,再给边界、取舍与检查清单
适用阶段原型已跑通、正在为工程化与上线做准备的中小型团队
语言与引擎GDScript 为主,涉及 C# 与 GDScript 的边界取舍;引擎版本以 Godot 4 为主

子目录索引

本目录下还有一个按年份归档的子目录,收录了另一批体量更大的 Godot 客户端文章。它由独立索引页承载,建议在本页看完主题分组后,再按年份进入子目录做纵向补读。

子目录文章数定位
2026187 篇按 2026 年时间线归档的 Godot 客户端文章,覆盖更细的实战切片

主题之间的依赖关系

十个分组不是平行排列的,它们之间存在真实的依赖与回读关系。理解这层关系,可以避免「先优化画面,后返工架构」这类常见浪费。

上游主题依赖它的下游主题依赖关系说明
场景架构与工程组织其余全部分组场景切分、引用治理与服务顺序决定了后续代码放在哪里、怎么被找到
资源导入与加载渲染、2D、3D、UI导入预设与加载策略决定了资源进内存的形态与时机,画面与玩法都受它约束
渲染、分辨率与可见性性能、发布帧率预算在渲染阶段就分配完毕,发布期只能做验证与取舍
存档、状态与数据治理网络、平台本地状态是云同步、跨设备与版本迁移的输入,先有稳定本地模型才有稳定远端
性能、发布与诊断工具无(收尾层)它是所有主题的验收环节,反向暴露前九个分组留下的可观测性缺口

场景架构与工程组织

这一组解决的是「Node 树自由但容易失控」的根问题:场景该怎么切分、实例什么时候释放、节点引用如何不因重构而断、全局服务用什么顺序启动、团队协作用哪种语言划边界。它们是所有其他主题的地基,建议按顺序读。

文章一句话核心内容
Godot 游戏客户端场景架构:把 Node 树从原型拉到可维护项目给出场景切分的层级原则,区分持久层、功能层与临时层,避免一个主场景无限膨胀
Godot 场景实例生命周期:从实例化到释放的客户端秩序梳理 PackedScene 实例化、入树、ready 时机与释放复用的边界,减少悬空引用
Godot 项目目录约定:让 scenes、scripts、resources 不再互相缠绕用目录结构表达模块边界与资源归属,统一命名规则以支撑多人协作
Godot 节点引用治理:NodePath、唯一名称与重构后的稳定性从一次改布局导致多处功能挂掉的复盘出发,讲硬编码路径的危害与替代方案
Godot Groups 分组通信:广播、查找和场景解耦的使用边界说明 Groups 何时是解耦利器、何时会变成隐形依赖,给出调用约定
Godot 信号事件流:从随手 connect 到可追踪的客户端事件边界用类型化信号与连接生命周期管理,解决重复触发和释放后仍连接的顽疾
Godot 脚本状态机模式:角色、UI 和流程控制如何避免 if 地狱把角色、UI、流程三类状态机统一成可迁移的模式,替代层层嵌套的条件判断
Godot Autoload 启动顺序:服务初始化、依赖和首屏耗时用显式依赖与阶段划分管理十几个全局服务,兼顾初始化顺序与首屏时间
Godot C# 与 GDScript 边界:性能、工具和团队协作怎么取舍把语言选择从信仰题变成边界题,给出互调、构建与调试的稳定分工
Godot 工具脚本工作流:用 EditorPlugin 把重复劳动留在编辑器里用编辑器插件、自定义 Inspector 与导入插件自动化关卡配置与资源检查

渲染、分辨率与可见性

画面相关的一组文章共同回答「在目标机型上稳住帧率」:先选对渲染器与分辨率策略,再管住光照、LOD、离屏对象与视差层,最后才谈粒子特效的表现力。

文章一句话核心内容
Godot 渲染器选择:Forward+、Mobile 和 Compatibility 怎么落到客户端策略说明三条渲染路径对光照、后处理、材质与平台兼容的影响,给出选型决策表
Godot 分辨率与 Stretch 策略:像素风、高清 UI 和多比例屏幕把 Viewport、Stretch 模式与窗口策略讲清楚,兼顾像素风缩放与 UI 清晰度
Godot 2D 光照与 Shader:氛围、可读性和移动端预算主张 2D 光照先服务可读性再服务氛围,给出 Light2D 与 Shader 的移动端预算
Godot 3D 遮挡、LOD 与可见距离:开放场景的客户端预算用遮挡剔除、LOD 与可见距离控制开放场景的渲染准备队列与低端显卡表现
Godot 可见性裁剪:让离屏对象安静下来借一次离屏机关仍在模拟导致的帧率异常,讲 VisibleOnScreenNotifier 的用法
Godot 2D 视差背景:Parallax2D、相机速度和循环层管理处理视差层在不同相机速度、分辨率与关卡边界下的循环与性能问题
Godot 粒子与 VFX 池化:GPUParticles、CPUParticles 和特效生命周期用池化与明确的生命周期管理高频特效,避免实例化与释放拖累帧率和内存

资源导入与加载

这一组把「从美术资产到运行时数据」的链路讲成一条可控管线:导入预设要统一、3D 与 2D 资产各有链路、加载策略要显式、配置引用要有稳定 ID。

文章一句话核心内容
Godot glTF 资源导入:从 Blender 到运行时 3D 资产的可控链路覆盖单位、轴向、材质、骨骼、动画、碰撞与 LOD 等导入环节的规范化处理
Godot 2D 精灵导入流水线:Aseprite、SpriteFrames 和版本一致性把 Aseprite 到 SpriteFrames 的导出约定固化,解决动画帧与版本对不上的问题
Godot 导入预设治理:纹理、音频、模型设置别靠手点主张导入设置也是代码,用预设与校验避免同类资源设置不一致
Godot 客户端资源加载:PackedScene、预加载和异步切场景的取舍区分预加载与异步加载的适用场景,用显式加载策略消除切场景卡顿
Godot 资源唯一 ID:路径会变,配置引用不能跟着断用稳定唯一 ID 替代路径做业务引用,避免改名、热更导致引用断裂
Godot 配置表导入:CSV、JSON、Resource 和运行时校验打通策划表格到运行时的导入链路,并加上运行时字段与取值校验

2D 玩法、地图与关卡

面向 2D 项目的一组:地图与导航共用一套数据、程序化关卡必须可复现、镜头手感要单独设计、物理层与交互对象要成体系。

文章一句话核心内容
Godot TileMap 与导航:2D 地图编辑、运行时阻挡和寻路更新让视觉层、碰撞层与寻路数据同源,避免看起来能走却走不过去的错位
Godot 程序化关卡生成:TileMap、随机种子和可复现调试用固定种子与生成后校验解决随机关卡「偶现死路」难以复现的痛点
Godot Camera2D 系统:跟随、边界、震屏和镜头叙事把跟随阻尼、房间边界、震屏与剧情运镜组织成独立可调的镜头系统
Godot 物理层与碰撞矩阵:别让 Area、Body 和射线互相误伤用层与掩码的矩阵化设计,避免物理误判并让碰撞关系可读可维护
Godot 可交互对象系统:提示、条件、优先级和交互事务统一处理重叠提示、条件校验、优先级与交互事务,替代各写各的 Area

3D 与角色控制

3D 项目的手感与空间理解依赖这一组:角色控制器不只是 move_and_slide 的包装、肩背相机需要状态机、寻路要和行为分层、世界空间 UI 有专门的射线与焦点问题。

文章一句话核心内容
Godot CharacterBody3D 控制器:手感、坡面、台阶和相机协同拆解加减速、空中控制、坡面滑动与台阶处理,让控制器服务手感而非反之
Godot 3D 肩背相机:SpringArm3D、遮挡和锁定目标的手感用 SpringArm3D 与遮挡处理构建稳定的肩背相机,并支持锁定与室内场景
Godot NavigationAgent3D 敌人寻路:路径、避障和行为状态的配合明确寻路只负责路径,行为与状态由上层决策,避免把 Agent 当完整 AI
Godot 3D 世界空间 UI:交互射线、Viewport 纹理和焦点反馈用 SubViewport 与 ViewportTexture 加射线交互,做出可用的世界空间界面
Godot 技能 Ability 架构:用 Resource 描述规则,用 Node 表现效果用 Resource 承载技能数据、用 Node 承载表现,避免技能逻辑堆进角色脚本

UI、交互与可访问性

UI 相关的一组强调「不要靠手调坐标」:布局与主题要成系统、拖拽等交互要处理事务与回滚、弹窗要有栈管理、多语言与可访问性要从早期就设计进去,输入意图要统一抽象。

文章一句话核心内容
Godot UI 开发:Control、Container 和主题系统的响应式组织用 Container 与主题系统替代手工锚点,撑住多分辨率、安全区与语言变长
Godot 背包拖拽 UI:Control 拖放、堆叠拆分和事务确认处理拖拽预览、堆叠拆分、目标校验与失败回滚,兼顾触屏与手柄替代
Godot 弹窗与 Modal 栈:大厅 UI 不混乱的关键用弹窗栈管理优先级与焦点恢复,解决多层遮罩与返回键失效的混乱
Godot 运行时主题切换:皮肤、深色模式与 StyleBox 的坑讲清 StyleBox 与 Theme 覆盖关系,避免切肤后弹窗与 hover 态回退默认样式
Godot 客户端可访问性选项:字幕、色彩、震动和输入替代把字幕、色盲模式、震屏强度与输入替代做成系统能力而非发布前补开关
Godot 本地化实践:TranslationServer、字体回退和对话文本排版覆盖字体回退、换行、复数、变量与图片字,解决翻译变长后的排版问题
Godot 输入系统实践:InputMap、手柄和移动端触控如何统一先用 InputMap 抽象意图再处理设备,为手柄、触控与重绑定留出空间

音频、动画与剧情演出

这一组面向表现层:音频要分总线与运行时混音、动画要有库与状态机治理、剧情演出要可跳过可恢复、对话打字机要处理节奏边界,时间与暂停则要区分游戏时间与 UI 时间。

文章一句话核心内容
Godot 音频总线实践:音乐、音效、语音和运行时混音用音频总线组织音乐、音效与语音,支持运行时音量、静音与 duck 处理
Godot 战斗动画状态机:AnimationTree、命中窗口和表现事件用 AnimationTree 管理混合与打断,并把命中窗口与表现事件对齐到帧
Godot AnimationLibrary 管理:角色动作、复用和版本更新的组织方式用库与命名规范治理几十个动作的复用、更新与跨角色共享
Godot 剧情 Cutscene 编排:AnimationPlayer、Timeline 和可跳过流程处理跳过、资源未加载、字幕语音同步与中断后的角色状态恢复
Godot 对话打字机效果:逐字显示、跳过、语音和选项节奏处理逐字与跳过的切换、富文本标签计数、语音同步与选项出现时机
Godot Timer 与暂停系统:游戏时间、UI 时间和慢动作不要混在一起分清 SceneTree 暂停、time_scale 与 process mode,避免冷却与 UI 动画错乱

存档、状态与数据治理

存档相关的一组反复强调「问题不在写文件,而在几年后还能读」:版本迁移、多槽与档案、加密与完整性、云同步冲突,以及编辑器创作数据与运行时状态的边界。

文章一句话核心内容
Godot 存档系统:Resource、JSON 和版本迁移怎么选对比三种存档格式的取舍,并给出字段变更时的版本迁移方案
Godot 多存档槽与玩家档案:本地体验背后的状态治理设计多槽位、难度外观选择、删除确认与试玩转正式的状态治理
Godot 本地存档加密与完整性:防误改、防损坏和可恢复先明确加密目标再选算法,兼顾防误改、防损坏与损坏后的恢复
Godot 云存档同步:本地进度、远端版本和冲突选择处理双设备都玩过、离线进度与云端新进度的冲突判定与选择
Godot 编辑器数据与运行时存档:关卡元数据如何安全进入客户端区分编辑器创作数据与玩家状态,避免把编辑期数据直接写进存档
Godot 任务图 Resource:条件、奖励和节点编辑的客户端做法用 Resource 表达任务节点与前置条件,支持编辑器可视化编辑任务图

网络、多人、平台与运营

这一组覆盖客户端与外部世界的接口:HTTP 接口要有统一客户端、网络层要拆开状态同步与重连、多人大厅要有稳定状态机、平台生命周期与权限要按真实设备设计,运营相关的通知、广告与埋点则要先立数据契约。

文章一句话核心内容
Godot HTTP API 客户端:登录、鉴权、重试和错误码边界把登录、鉴权过期、重试、取消与错误码统一到一个 HTTP 客户端里
Godot 网络客户端:把 WebSocket、状态同步和重连边界拆清楚把网络层从玩法脚本里抽离,明确状态同步、断线重连与消息顺序边界
Godot 多人大厅实践:ENet、房间状态和客户端准备流程用状态机管理加入、准备、换角色、加载与主机断开等大厅流程
Godot 平台生命周期:后台、暂停、窗口失焦和恢复状态处理来电切后台、窗口失焦、睡眠恢复对音频、网络与计时器的影响
Godot 移动端权限请求:相册、麦克风、通知和安全启动路径按功能价值时机请求权限,并为拒绝后的功能恢复留出路径
Godot 本地通知调度:移动端提醒别打扰玩家处理通知去重、时间校准与 Android 13 权限,避免骚扰与失效提醒
Godot 激励视频广告接入:奖励、失败与客户端边界覆盖广告加载、展示失败、中途关闭、回调乱序与服务端奖励超时等状态
Godot 埋点事件体系:从随手打点到可分析的数据契约建立事件命名、参数与 attempt_id 的数据契约,让埋点真正可分析

性能、发布与诊断工具

最后一组面向上线:真机性能、三个平台的导出差异、内容包与热修、发布前体检,以及让问题在导出包与真机上仍可定位的诊断工具链。

文章一句话核心内容
Godot 移动端导出与性能:从编辑器流畅到真机稳定面对带宽、纹理格式、内存上限与发热降频,逐项排查真机才暴露的问题
Godot 桌面与 Steam 发布:导出、成就、云存档和覆盖层边界覆盖成就、统计、云存档、覆盖层、手柄与离线模式的 Steam 接入细节
Godot Web 导出:浏览器存储、加载页和平台限制的客户端策略处理包体下载、IndexedDB、音频自动播放、线程与刷新丢状态的限制
Godot PCK 内容包:DLC、热修和资源版本的客户端边界用版本匹配与校验处理内容包与主程序不一致导致的错误放大
Godot 客户端发布前体检:资源、平台、日志和玩家路径的最后检查把导出配置、测试开关、存档迁移、SDK 环境与回滚包做成发布前清单
Godot 崩溃与诊断日志:导出包里也要知道发生了什么为导出包设计诊断日志与崩溃上报,让玩家一句「崩了」也能定位
Godot 游戏内调试控制台:命令、权限和运行时诊断在真机与测试服提供命令控制台,同时用权限与开关控制正式包风险
Godot 编辑器与运行时开关:调试功能、实验玩法和灰度配置统一管理环境、账号、构建与平台维度的开关,避免线上功能误开
Godot 客户端自动化测试:从脚本单测到可重复的场景冒烟用单测与场景冒烟覆盖配置加载、存档迁移、页面打开与关键路径报错
Godot Gameplay 对象池:子弹、掉落物和浮字的复用边界对子弹、掉落物与浮字等高频对象做池化,消除战斗高峰期的实例化抖动

常见取舍速查

下列问题在本目录里被反复讨论,这里给出结论方向与对应文章,方便先看答案再决定深读哪一篇。

常见问题结论方向对应文章
渲染器该选哪个按目标平台与美术规范定,不要等打包前再选渲染器选择
场景要不要拆按生命周期与复用频率拆,而不是按文件数量拆场景架构
存档用什么格式先定迁移策略再选格式,Resource 与 JSON 各有适用面存档系统
节点引用怎么写用唯一名称或导出引用,避免硬编码 NodePath节点引用治理
全局服务放哪里用 Autoload 但显式声明依赖与启动阶段Autoload 启动顺序
高频对象怎么办子弹、掉落物与浮字一律池化,特效单独管理生命周期对象池
切场景卡顿用异步加载加过渡页,别在点击回调里同步加载资源加载
多语言排版乱字体回退与换行规则要提前设计,不能只做文本替换本地化实践
线上功能误开用统一的开关体系管理环境、账号与构建维度运行时开关
真机才崩先补诊断日志与崩溃上报,再谈复现与修复崩溃与诊断日志
切后台回来错乱把生命周期事件接到音频、网络与计时器的暂停恢复上平台生命周期
弹窗互相遮挡用 Modal 栈管优先级与焦点恢复,禁止各页面自行弹窗弹窗与 Modal 栈
技能逻辑越写越乱用 Resource 描述规则、Node 承载表现,别堆进角色脚本技能 Ability 架构
物理互相误伤先把层与掩码画成矩阵,再写碰撞代码物理层与碰撞矩阵

上面这些结论都来自具体的项目复盘,每篇原文都保留了当时的失败场景与数据,如果结论与你的项目直觉冲突,建议直接跳到对应文章看推导过程。

推荐阅读路径

不同角色与阶段的目标不同,下面给出三条可以直接照着走的路径,每条都标注了起点、必经篇目与验收标准。

路径适合谁起点验收标准
路径一 架构优先架构师、主程、技术负责人场景架构与工程组织整组能画出本项目的场景分层图与服务启动顺序
路径二 手感优先玩法开发、表现开发、TA2D 玩法与 3D 与角色控制两组镜头、控制器、动画与音效可以独立调参而不互相牵制
路径三 上线优先发布负责人、QA、运营支持性能、发布与诊断工具整组每个平台的导出包都有日志、开关与回滚预案

路径一 架构师与主程:先把地基立稳

先读场景架构与工程组织整组,尤其是场景切分、实例生命周期、节点引用治理与 Autoload 顺序四篇,它们决定了后续所有主题的返工成本。接着看渲染器选择与分辨率策略,把技术选型在立项期就定下来,避免美术资产做完才发现目标机型撑不住。最后用发布前体检与崩溃诊断两篇反向检查前期设计是否留下了可观测的余地,如果日志、开关与版本信息在架构期没预留,上线阶段会付出成倍的代价。

路径二 玩法与表现开发:手感与演出优先

从 2D 玩法与 3D 与角色控制两组切入,重点看镜头、控制器、寻路与技能架构,这几篇决定了玩家对空间与操作的直觉。再进入音频、动画与剧情演出组,把状态机、AnimationTree、Cutscene 与打字机节奏串成一条表现流水线,让动画、音效、字幕与镜头在同一套事件体系下对齐。最后补 UI 与交互组的拖拽与弹窗栈,让界面不拖手感的后腿,尤其是弹窗抢占焦点与遮罩层叠这类会直接破坏操作流畅度的问题。

路径三 上线与运营支持:把风险关在门外

先读性能、发布与诊断工具整组,按平台导出、内容包、发布体检、日志与开关逐项过一遍,把每个平台的差异点写成自己的检查表。再回到网络、多人、平台与运营组,确认鉴权、重连、生命周期、权限、通知与埋点都有明确边界,特别是弱网、切后台与权限被拒这些真实设备才会出现的分支。存档与数据治理组作为收尾,确保版本迁移与云同步冲突在上线前已经演练过,而不是等玩家反馈丢档才补。

相关专题

全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev Products Lua 写作
游戏开发

Godot 崩溃前状态快照:Crash Log 之外,还要知道玩家当时在做什么

为什么要单独设计 崩溃日志能告诉你哪里崩了,却不一定告诉你玩家当时在做什么。是在切场景、打开背包、领取奖励、下载资源、还是进入 Boss 战?如果只有堆栈,很多问题仍然很难复现。崩溃前状态快照用一个小型环形缓冲记录最近的关键状态,崩溃后保存,下一次启动用于恢复和诊断。

9 分钟阅读
Godot 游戏客户端 崩溃诊断
Game

Godot 编辑器数据与运行时存档:关卡元数据如何安全进入客户端

编辑器里填的数据,不等于玩家存档 Godot 编辑器很适合让开发者在场景里填数据:怪物出生点、宝箱掉落、NPC 对话、触发区域、相机边界、背景音乐、任务 ID。导出变量和 Resource 让这些数据很容易被内容人员编辑。问题是,很多项目没有区分“编辑器创作数据”和“运行时玩家状态”。

9 分钟阅读
Godot 编辑器数据 运行时存档
游戏开发

Godot 布娃娃倒地与起身恢复:物理演出结束后还要回到可控角色

为什么这个系统值得单独设计 布娃娃能让重击、爆炸、死亡更有冲击力,但活着的角色不能永远躺成一团。玩家被炸飞后,客户端要在物理演出、碰撞安全、姿态匹配、起身动画和控制权恢复之间做顺滑交接。Godot 的物理骨骼可以做出效果,真正难的是结束时回到可控角色,而且不穿地、不抽搐、不瞬移。

9 分钟阅读
Godot 游戏客户端 物理动画
游戏开发

Godot 剧情条件图谱:任务能不能触发,不该散落在十几个脚本里

为什么这个系统值得单独做 剧情和任务做多后,触发条件很容易散落在 NPC 脚本、场景脚本、对话脚本和任务表里。玩家明明完成了前置,却没触发后续;或者某个活动提前解锁。条件分散时,QA 很难知道缺了什么。条件图谱把 world flags、任务状态、物品、地点和对话选择集中表达,让触发原因可解释。

9 分钟阅读
Godot 游戏客户端 剧情条件
游戏开发

Godot 电影镜头轨道混合:剧情镜头接管相机,也要把控制权还回来

为什么这个系统值得单独做 剧情镜头经常要短暂接管玩家相机:展示 Boss、打开大门、进入新区域、强调 NPC。接管容易,还回来难。玩家原本可能在锁定、室内、骑乘或手动旋转状态;剧情结束后如果直接切回默认相机,玩家会迷失方向。电影镜头轨道需要混合、上下文保存和跳过收尾。

9 分钟阅读
Godot 游戏客户端 剧情镜头
游戏开发

Godot 离线模式入口保护:没有网络时哪些内容能玩,哪些必须提前说清

为什么要单独设计 不是所有游戏都能完整离线,但完全没网时直接卡在登录页也很糟。单机剧情、训练场、已缓存关卡、设置和图鉴可能可用;商店、匹配、排行榜、云存档、活动奖励必须联网。离线模式入口保护的目标,是在没有网络时清楚告诉玩家还能做什么,不能做什么,以及重新联网后如何恢复。

9 分钟阅读
Godot 游戏客户端 离线模式
游戏开发

Godot UI 骨架屏与占位态:加载不是转圈越久越有耐心

为什么这个系统值得单独设计 加载态不是放一个转圈图标就结束。商店、任务、好友、排行榜、活动页都可能需要网络数据。玩家看到空白页面时,不知道是还在加载、没有内容、网络失败还是页面坏了。Godot UI 应该把 Loading、Skeleton、Empty、Error、Refreshing 区分清楚,让玩家在等待时仍...

9 分钟阅读
Godot 游戏客户端 UI加载态
游戏开发

Godot 移动端权限流程:相册、通知和麦克风都要在合适时机开口

为什么这个系统值得单独设计 移动端权限请求如果时机不对,会直接降低转化。玩家刚进游戏就弹通知、相册、麦克风,通常会拒绝;等到玩家点击截图分享、语音聊天、活动提醒时再解释,成功率高得多。Godot 导出移动端时,权限不只是 manifest 配置,还包括运行时请求、拒绝后的降级和平台差异。

9 分钟阅读
Godot 游戏客户端 移动端权限
游戏开发

Godot 受击反应分层:硬直、击退、闪白和音效不能互相抢控制权

为什么这个系统值得单独设计 受击反馈往往由很多系统同时参与:角色硬直、击退、动画受击、材质闪白、血条变化、音效、镜头震动、手柄震动。单独都简单,合起来就容易互相抢控制权。角色明明被击飞,移动脚本还在读输入;闪白材质没恢复;连续受击把动画打断得像抽搐;Boss 霸体却播放了普通硬直。

9 分钟阅读
Godot 游戏客户端 受击反馈