<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>客户端 on PlumePHP</title><link>https://plumephp.com/tags/%E5%AE%A2%E6%88%B7%E7%AB%AF/</link><description>Recent content in 客户端 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 30 May 2026 12:05:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E5%AE%A2%E6%88%B7%E7%AB%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>Godot 客户端自动化测试：从脚本单测到可重复的场景冒烟</title><link>https://plumephp.com/godot-automated-testing-for-client-2026/</link><pubDate>Sat, 30 May 2026 12:05:00 +0800</pubDate><guid>https://plumephp.com/godot-automated-testing-for-client-2026/</guid><description>&lt;h2 id="godot-项目也需要自动化测试"&gt;Godot 项目也需要自动化测试&lt;/h2&gt;
&lt;p&gt;很多游戏团队觉得客户端测试只能靠 QA 手玩。确实，手感、美术和关卡体验需要人工判断，但大量基础问题完全可以自动化：配置能不能加载，存档能不能迁移，UI 页面能不能打开，场景有没有缺资源，玩家能不能从主菜单进入第一关，关键按钮点击后是否报错。Godot 项目越接近发布，越需要可重复的冒烟测试。&lt;/p&gt;</description></item><item><title>Godot 战斗动画状态机：AnimationTree、命中窗口和表现事件</title><link>https://plumephp.com/godot-animation-state-machine-combat-2026/</link><pubDate>Wed, 27 May 2026 18:20:00 +0800</pubDate><guid>https://plumephp.com/godot-animation-state-machine-combat-2026/</guid><description>&lt;h2 id="战斗动画不是播放一个-animation_name"&gt;战斗动画不是播放一个 animation_name&lt;/h2&gt;
&lt;p&gt;Godot 做动作游戏时，最容易的做法是在角色脚本里 &lt;code&gt;animation_player.play(&amp;quot;attack&amp;quot;)&lt;/code&gt;。原型阶段够用，但战斗动作一多，问题会马上出现：移动和攻击怎么混合，受击能不能打断，翻滚何时无敌，命中判定在哪一帧打开，连招输入窗口怎么处理，服务器结果怎么和动画对齐。&lt;/p&gt;</description></item><item><title>Godot 网络客户端：把 WebSocket、状态同步和重连边界拆清楚</title><link>https://plumephp.com/godot-network-client-state-sync-2026/</link><pubDate>Thu, 21 May 2026 16:30:00 +0800</pubDate><guid>https://plumephp.com/godot-network-client-state-sync-2026/</guid><description>&lt;h2 id="网络层不应该散在每个玩法脚本里"&gt;网络层不应该散在每个玩法脚本里&lt;/h2&gt;
&lt;p&gt;Godot 可以直接使用 HTTPRequest、WebSocketPeer、MultiplayerAPI 等能力。很多项目早期会在登录页写 HTTP 请求，在战斗脚本里写 WebSocket，在聊天 UI 里直接发消息。功能能跑，但一旦要做重连、鉴权、消息序列、错误码、弱网提示、日志追踪，就会发现网络逻辑散得到处都是。&lt;/p&gt;</description></item><item><title>Godot 存档系统：Resource、JSON 和版本迁移怎么选</title><link>https://plumephp.com/godot-save-system-and-versioning-2026/</link><pubDate>Fri, 15 May 2026 20:12:00 +0800</pubDate><guid>https://plumephp.com/godot-save-system-and-versioning-2026/</guid><description>&lt;h2 id="存档问题通常不是写文件而是几年后还能读"&gt;存档问题通常不是写文件，而是几年后还能读&lt;/h2&gt;
&lt;p&gt;Godot 做单机、买断制、轻联网项目时，本地存档非常关键。很多原型直接把字典转 JSON 写进 &lt;code&gt;user://save.json&lt;/code&gt;，能存能读，看起来就完成了。真正上线后，问题会变复杂：版本更新后字段变了怎么办，写到一半断电怎么办，玩家改文件怎么办，云存档冲突怎么办，多角色 profile 怎么隔离，调试时怎么知道存档里有什么。&lt;/p&gt;</description></item><item><title>Godot UI 开发：Control、Container 和主题系统的响应式组织</title><link>https://plumephp.com/godot-control-ui-responsive-layout-2026/</link><pubDate>Tue, 12 May 2026 13:50:00 +0800</pubDate><guid>https://plumephp.com/godot-control-ui-responsive-layout-2026/</guid><description>&lt;h2 id="godot-ui-不是把-control-拖到看起来对的位置"&gt;Godot UI 不是把 Control 拖到看起来对的位置&lt;/h2&gt;
&lt;p&gt;Godot 的 Control 系统上手很快，拖按钮、改 Anchor、调 Margin，就能做出界面。问题是如果每个页面都靠手调坐标，到了多分辨率、移动端安全区、语言变长、手柄焦点、主题换肤时，界面会不断破。Godot 的 UI 需要用 Container、Anchor、Size Flags 和 Theme 组合，而不是把位置当成固定像素。&lt;/p&gt;</description></item><item><title>Godot 客户端资源加载：PackedScene、预加载和异步切场景的取舍</title><link>https://plumephp.com/godot-resource-loading-and-packedscene-2026/</link><pubDate>Wed, 06 May 2026 15:08:00 +0800</pubDate><guid>https://plumephp.com/godot-resource-loading-and-packedscene-2026/</guid><description>&lt;h2 id="加载卡顿通常不是-godot-慢而是策略太随意"&gt;加载卡顿通常不是 Godot 慢，而是策略太随意&lt;/h2&gt;
&lt;p&gt;Godot 项目早期经常直接 &lt;code&gt;preload()&lt;/code&gt; 场景，或者在按钮点击时 &lt;code&gt;load()&lt;/code&gt; 一个资源。原型阶段这样没问题，资源少、场景小、设备强，感受不到明显成本。项目做大后，主城切战斗、打开商城、进入角色预览都会加载大量 PackedScene、贴图、材质、音频和脚本。如果加载策略没有统一设计，玩家看到的就是黑屏、卡顿、按钮无响应。&lt;/p&gt;</description></item><item><title>Godot 客户端可访问性选项：字幕、色彩、震动和输入替代</title><link>https://plumephp.com/godot-accessibility-options-2026/</link><pubDate>Wed, 29 Apr 2026 13:18:00 +0800</pubDate><guid>https://plumephp.com/godot-accessibility-options-2026/</guid><description>&lt;h2 id="可访问性不是发布前加几个开关"&gt;可访问性不是发布前加几个开关&lt;/h2&gt;
&lt;p&gt;游戏客户端的可访问性经常被放到最后：加个字幕开关、加个色盲模式、加个震屏强度。真正做起来会发现，如果系统早期没考虑，后补很难。字幕需要音频事件提供文本，色彩模式需要 UI 和玩法提示不只依赖颜色，输入替代需要动作系统支持重绑定，UI 缩放需要布局能自适应。&lt;/p&gt;</description></item><item><title>Godot 音频总线实践：音乐、音效、语音和运行时混音</title><link>https://plumephp.com/godot-audio-bus-mix-runtime-2026/</link><pubDate>Sat, 11 Apr 2026 11:06:00 +0800</pubDate><guid>https://plumephp.com/godot-audio-bus-mix-runtime-2026/</guid><description>&lt;h2 id="音频系统不能只靠-audiostreamplayer"&gt;音频系统不能只靠 AudioStreamPlayer&lt;/h2&gt;
&lt;p&gt;Godot 的 AudioStreamPlayer 很容易用：放一个节点，指定音频，调用 play。原型阶段足够了。项目做大后，你会有背景音乐、环境音、UI 音效、战斗音效、角色语音、剧情旁白、队伍语音、系统提示。它们的音量、优先级、暂停规则和平台行为都不一样。如果每个节点自己播放，混音会失控。&lt;/p&gt;</description></item><item><title>Godot TileMap 与导航：2D 地图编辑、运行时阻挡和寻路更新</title><link>https://plumephp.com/godot-tilemap-navigation-runtime-2026/</link><pubDate>Sun, 05 Apr 2026 14:12:00 +0800</pubDate><guid>https://plumephp.com/godot-tilemap-navigation-runtime-2026/</guid><description>&lt;h2 id="tilemap-不是只给美术铺地砖"&gt;TileMap 不是只给美术铺地砖&lt;/h2&gt;
&lt;p&gt;Godot 的 TileMap 很适合做 2D 地图。美术可以铺地面、墙体、装饰，策划可以放交互物和出生点。问题是很多项目把 TileMap 当成纯视觉层，运行时再另写一套碰撞、寻路、触发区和地图数据。两套数据一旦不同步，玩家就会遇到看起来能走但走不过去，或者怪物穿过墙的问题。&lt;/p&gt;</description></item><item><title>Godot 信号事件流：从随手 connect 到可追踪的客户端事件边界</title><link>https://plumephp.com/godot-typed-signals-event-flow-2026/</link><pubDate>Thu, 02 Apr 2026 09:28:00 +0800</pubDate><guid>https://plumephp.com/godot-typed-signals-event-flow-2026/</guid><description>&lt;h2 id="信号好用但不能没有边界"&gt;信号好用，但不能没有边界&lt;/h2&gt;
&lt;p&gt;Godot 的信号系统是它最顺手的特性之一。按钮点击、角色受伤、计时器结束、资源加载完成，都可以用 signal 表达。原型阶段，脚本里随手 &lt;code&gt;connect()&lt;/code&gt;，节点之间很快就能协作。项目做大后，信号也会变成一张看不见的网：谁监听了谁，节点释放后连接还在不在，同一个事件为什么触发两次，某个 UI 为什么在场景关闭后仍然收到通知。&lt;/p&gt;</description></item><item><title>Godot 编辑器数据与运行时存档：关卡元数据如何安全进入客户端</title><link>https://plumephp.com/godot-editor-authored-save-metadata-2026/</link><pubDate>Mon, 30 Mar 2026 20:04:00 +0800</pubDate><guid>https://plumephp.com/godot-editor-authored-save-metadata-2026/</guid><description>&lt;h2 id="编辑器里填的数据不等于玩家存档"&gt;编辑器里填的数据，不等于玩家存档&lt;/h2&gt;
&lt;p&gt;Godot 编辑器很适合让开发者在场景里填数据：怪物出生点、宝箱掉落、NPC 对话、触发区域、相机边界、背景音乐、任务 ID。导出变量和 Resource 让这些数据很容易被内容人员编辑。问题是，很多项目没有区分“编辑器创作数据”和“运行时玩家状态”。最后场景里既有默认宝箱配置，又有玩家是否打开过宝箱的状态，越改越乱。&lt;/p&gt;</description></item><item><title>Godot 分辨率与 Stretch 策略：像素风、高清 UI 和多比例屏幕</title><link>https://plumephp.com/godot-render-stretch-resolution-policy-2026/</link><pubDate>Fri, 27 Mar 2026 12:38:00 +0800</pubDate><guid>https://plumephp.com/godot-render-stretch-resolution-policy-2026/</guid><description>&lt;h2 id="分辨率策略决定所有-ui-和画面的基础"&gt;分辨率策略决定所有 UI 和画面的基础&lt;/h2&gt;
&lt;p&gt;Godot 项目很早就要选择 Stretch 设置、设计分辨率、窗口模式、缩放方式。很多团队原型阶段随便设一个 1920x1080，等到要适配 Steam Deck、超宽屏、移动端、低分辨率笔记本时，才发现 UI、相机、像素风画面都被拉伸。分辨率策略不是发布前配置，而是客户端基础架构。&lt;/p&gt;</description></item><item><title>Godot 崩溃与诊断日志：导出包里也要知道发生了什么</title><link>https://plumephp.com/godot-crash-logging-diagnostics-2026/</link><pubDate>Tue, 24 Mar 2026 18:16:00 +0800</pubDate><guid>https://plumephp.com/godot-crash-logging-diagnostics-2026/</guid><description>&lt;h2 id="没有日志的崩溃只能靠猜"&gt;没有日志的崩溃只能靠猜&lt;/h2&gt;
&lt;p&gt;Godot 编辑器里出错很直观，控制台、调试器、场景树都在眼前。导出包到了玩家机器上，情况完全不同：游戏闪退、黑屏、卡加载、按钮无响应，玩家只能发一句“崩了”。如果客户端没有诊断日志，开发只能靠猜测复现。&lt;/p&gt;</description></item><item><title>Godot 粒子与 VFX 池化：GPUParticles、CPUParticles 和特效生命周期</title><link>https://plumephp.com/godot-particles-vfx-pooling-2026/</link><pubDate>Sun, 15 Mar 2026 13:14:00 +0800</pubDate><guid>https://plumephp.com/godot-particles-vfx-pooling-2026/</guid><description>&lt;h2 id="特效越多越需要生命周期"&gt;特效越多，越需要生命周期&lt;/h2&gt;
&lt;p&gt;Godot 的 GPUParticles2D/3D、CPUParticles、AnimatedSprite、Shader 都能做特效。技能命中、拾取奖励、传送门、天气、UI 光效很快会让场景变热闹。问题是，如果每个特效都临时实例化、播放、忘记释放，帧率和内存会慢慢掉。特效系统的关键不是做得多亮，而是生命周期可控。&lt;/p&gt;</description></item><item><title>Godot CharacterBody3D 控制器：手感、坡面、台阶和相机协同</title><link>https://plumephp.com/godot-characterbody3d-controller-feel-2026/</link><pubDate>Fri, 06 Mar 2026 15:22:00 +0800</pubDate><guid>https://plumephp.com/godot-characterbody3d-controller-feel-2026/</guid><description>&lt;h2 id="3d-角色控制器不是-move_and_slide-的包装"&gt;3D 角色控制器不是 move_and_slide 的包装&lt;/h2&gt;
&lt;p&gt;Godot 的 CharacterBody3D 提供了很好的基础：速度向量、地面检测、&lt;code&gt;move_and_slide()&lt;/code&gt;、坡面参数。原型里写几十行就能让角色跑起来。但商业客户端里的角色控制器要面对更多细节：加速度、减速度、空中控制、坡面滑动、台阶、相机方向、根运动、输入缓冲、技能打断、网络校正。&lt;/p&gt;</description></item><item><title>Godot 物理层与碰撞矩阵：别让 Area、Body 和射线互相误伤</title><link>https://plumephp.com/godot-physics-layers-collision-matrix-2026/</link><pubDate>Tue, 03 Mar 2026 10:18:00 +0800</pubDate><guid>https://plumephp.com/godot-physics-layers-collision-matrix-2026/</guid><description>&lt;h2 id="碰撞问题往往不是物理引擎错了"&gt;碰撞问题往往不是物理引擎错了&lt;/h2&gt;
&lt;p&gt;Godot 的物理系统已经把很多底层细节封装好了：RigidBody、CharacterBody、Area、CollisionShape、RayCast、PhysicsServer。真正让项目出问题的，通常不是物理引擎算错，而是层和掩码没有设计。角色能撞到金币，子弹打到自己的触发区，敌人射线被装饰物挡住，交互 Area 同时触发战斗伤害，这些都来自碰撞矩阵混乱。&lt;/p&gt;</description></item><item><title>Godot 平台生命周期：后台、暂停、窗口失焦和恢复状态</title><link>https://plumephp.com/godot-platform-lifecycle-mobile-desktop-2026/</link><pubDate>Sat, 28 Feb 2026 20:10:00 +0800</pubDate><guid>https://plumephp.com/godot-platform-lifecycle-mobile-desktop-2026/</guid><description>&lt;h2 id="生命周期问题只在真实设备上出现"&gt;生命周期问题只在真实设备上出现&lt;/h2&gt;
&lt;p&gt;Godot 项目在编辑器里运行时，生命周期很简单：开始、运行、停止。到了真实平台，情况复杂很多。手机来电话、切后台、锁屏、系统回收；桌面窗口失焦、最小化、显示器切换；Steam Deck 睡眠恢复；网页版本标签页冻结。这些都会影响音频、网络、计时器、渲染资源和存档。&lt;/p&gt;</description></item><item><title>Godot 配置表导入：CSV、JSON、Resource 和运行时校验</title><link>https://plumephp.com/godot-data-table-import-validation-2026/</link><pubDate>Thu, 26 Feb 2026 17:44:00 +0800</pubDate><guid>https://plumephp.com/godot-data-table-import-validation-2026/</guid><description>&lt;h2 id="配置表是客户端和内容团队的接口"&gt;配置表是客户端和内容团队的接口&lt;/h2&gt;
&lt;p&gt;游戏客户端离不开配置表：道具、技能、怪物、关卡、任务、商店、掉落、文本。Godot 项目早期可能直接用 Resource 手填，或读一个 JSON。内容多起来后，策划更习惯 CSV、Excel 或在线表格。如何把这些表稳定导入 Godot，并在运行时安全使用，是客户端工程的重要部分。&lt;/p&gt;</description></item><item><title>Godot 本地存档加密与完整性：防误改、防损坏和可恢复</title><link>https://plumephp.com/godot-save-encryption-integrity-2026/</link><pubDate>Fri, 20 Feb 2026 15:56:00 +0800</pubDate><guid>https://plumephp.com/godot-save-encryption-integrity-2026/</guid><description>&lt;h2 id="存档加密先问目标不要先问算法"&gt;存档加密先问目标，不要先问算法&lt;/h2&gt;
&lt;p&gt;Godot 本地存档可以用 JSON、ConfigFile、Resource 或二进制格式。很多团队上线前会问：要不要加密？用 AES 还是 XOR？真正应该先问的是目标。你是想防止玩家误改导致坏档，还是想提高作弊成本，还是想保护剧情进度不被直接查看？不同目标对应不同方案。&lt;/p&gt;</description></item><item><title>Godot 游戏内调试控制台：命令、权限和运行时诊断</title><link>https://plumephp.com/godot-in-game-debug-console-2026/</link><pubDate>Tue, 17 Feb 2026 11:38:00 +0800</pubDate><guid>https://plumephp.com/godot-in-game-debug-console-2026/</guid><description>&lt;h2 id="调试控制台是开发期的高杠杆工具"&gt;调试控制台是开发期的高杠杆工具&lt;/h2&gt;
&lt;p&gt;Godot 编辑器调试很好用，但很多问题只在导出包、真机、手柄、低端设备或测试服出现。游戏内调试控制台可以让开发和 QA 在运行时输入命令：切场景、发道具、模拟网络、打印状态、打开面板、刷新配置。它能显著提高定位效率，也可能成为正式包风险。&lt;/p&gt;</description></item><item><title>Godot Timer 与暂停系统：游戏时间、UI 时间和慢动作不要混在一起</title><link>https://plumephp.com/godot-timer-pause-time-scale-2026/</link><pubDate>Sat, 14 Feb 2026 16:20:00 +0800</pubDate><guid>https://plumephp.com/godot-timer-pause-time-scale-2026/</guid><description>&lt;h2 id="时间系统一混暂停就会出怪问题"&gt;时间系统一混，暂停就会出怪问题&lt;/h2&gt;
&lt;p&gt;Godot 里有 Timer、&lt;code&gt;delta&lt;/code&gt;、SceneTree pause、Engine time_scale、Tween、AnimationPlayer。它们都和时间有关。项目早期随便用，到了暂停菜单、慢动作、技能冷却、UI 倒计时、联网同步时，就会出现奇怪问题：暂停后 Buff 还在掉，UI 动画不动，慢动作影响了下载进度，技能冷却和服务器时间不一致。&lt;/p&gt;</description></item><item><title>Godot 任务图 Resource：条件、奖励和节点编辑的客户端做法</title><link>https://plumephp.com/godot-quest-graph-resource-editor-2026/</link><pubDate>Sun, 08 Feb 2026 19:16:00 +0800</pubDate><guid>https://plumephp.com/godot-quest-graph-resource-editor-2026/</guid><description>&lt;h2 id="任务不是一条数组而是一张状态图"&gt;任务不是一条数组，而是一张状态图&lt;/h2&gt;
&lt;p&gt;简单任务可以是“接取、完成、领奖”。项目复杂后，任务会有前置条件、分支对话、收集目标、击败目标、区域触发、限时阶段、奖励选择、后续任务。用一条数组或几个布尔值很快会不够。Godot 项目可以用 Resource 表达任务节点，用编辑器工具或 GraphEdit 做任务图编辑。&lt;/p&gt;</description></item><item><title>Godot HTTP API 客户端：登录、鉴权、重试和错误码边界</title><link>https://plumephp.com/godot-http-api-client-auth-retry-2026/</link><pubDate>Mon, 02 Feb 2026 09:42:00 +0800</pubDate><guid>https://plumephp.com/godot-http-api-client-auth-retry-2026/</guid><description>&lt;h2 id="http-接口不该散在每个按钮里"&gt;HTTP 接口不该散在每个按钮里&lt;/h2&gt;
&lt;p&gt;Godot 项目接后端时，很多功能一开始都很直接：登录页发一个 HTTPRequest，商城页发一个购买请求，排行榜页发一个刷新请求。每个页面自己创建节点、拼 URL、处理 JSON。原型能跑，但弱网、鉴权过期、错误码、重复点击、请求取消、日志追踪一来，代码会立刻分裂。&lt;/p&gt;</description></item><item><title>Godot 客户端发布前体检：资源、平台、日志和玩家路径的最后检查</title><link>https://plumephp.com/godot-release-readiness-checklist-2026/</link><pubDate>Fri, 30 Jan 2026 20:20:00 +0800</pubDate><guid>https://plumephp.com/godot-release-readiness-checklist-2026/</guid><description>&lt;h2 id="发布前体检不是最后一天跑一遍"&gt;发布前体检不是最后一天跑一遍&lt;/h2&gt;
&lt;p&gt;Godot 客户端做完功能后，发布前还有一堆容易被忽略的事情：导出配置是否正确，测试工具是否关闭，资源是否缺失，存档能否迁移，日志是否可用，平台 SDK 是否连正式环境，性能是否达标，回滚包是否准备。很多事故不是因为核心玩法坏，而是发布流程漏了一项。&lt;/p&gt;</description></item><item><title>Godot 编辑器与运行时开关：调试功能、实验玩法和灰度配置</title><link>https://plumephp.com/godot-editor-runtime-feature-flags-2026/</link><pubDate>Tue, 27 Jan 2026 15:58:00 +0800</pubDate><guid>https://plumephp.com/godot-editor-runtime-feature-flags-2026/</guid><description>&lt;h2 id="开关多了以后最怕不知道谁生效"&gt;开关多了以后，最怕不知道谁生效&lt;/h2&gt;
&lt;p&gt;游戏客户端里会有很多开关：调试面板、实验 UI、新手流程新版、战斗参数灰度、活动入口、性能诊断、编辑器辅助显示。早期用几个 bool 就够了，后期不同环境、不同账号、不同构建、不同平台都需要不同开关。没有统一管理，线上就会出现测试功能误开、实验功能只关了一半、编辑器开关进入正式包。&lt;/p&gt;</description></item><item><title>Godot 可交互对象系统：提示、条件、优先级和交互事务</title><link>https://plumephp.com/godot-interactable-object-system-2026/</link><pubDate>Thu, 15 Jan 2026 17:04:00 +0800</pubDate><guid>https://plumephp.com/godot-interactable-object-system-2026/</guid><description>&lt;h2 id="交互对象越多越不能各写各的"&gt;交互对象越多，越不能各写各的&lt;/h2&gt;
&lt;p&gt;游戏里到处都是可交互对象：NPC、宝箱、门、机关、采集点、传送门、任务物品、商店牌、剧情触发器。原型阶段，每个对象自己放一个 Area，玩家进入后显示提示，按键触发。功能多了之后，问题就会出现：多个对象重叠时提示谁？战斗中能不能交互？条件不足怎么提示？交互后要不要等服务端？离开范围时事务怎么处理？&lt;/p&gt;</description></item><item><title>Godot 项目目录约定：让 scenes、scripts、resources 不再互相缠绕</title><link>https://plumephp.com/godot-project-folder-conventions-2026/</link><pubDate>Sat, 03 Jan 2026 10:08:00 +0800</pubDate><guid>https://plumephp.com/godot-project-folder-conventions-2026/</guid><description>&lt;h2 id="目录结构不是洁癖是协作成本"&gt;目录结构不是洁癖，是协作成本&lt;/h2&gt;
&lt;p&gt;Godot 项目很容易从一个 &lt;code&gt;Player.tscn&lt;/code&gt; 和几个脚本开始。原型阶段，文件放在哪里似乎不重要，能找到就行。几周之后，项目里会出现 &lt;code&gt;NewFolder&lt;/code&gt;、&lt;code&gt;test&lt;/code&gt;、&lt;code&gt;old&lt;/code&gt;、&lt;code&gt;player2.gd&lt;/code&gt;、&lt;code&gt;enemy_final_final.tscn&lt;/code&gt;。美术资源、运行时场景、编辑器工具、配置 Resource 混在一起，任何改名都可能弄坏引用。&lt;/p&gt;</description></item></channel></rss>