当前位置: 首页 > news >正文

Godot(4.x): 游戏管理器: Excel 动态依赖注入实现

前言: 本文是Godot(4.x)版本实现的,基于PythonGodot实现的GodotAutoLoad模块动态注入实现解释,将会解释Godot 动态依赖表(使用Excel)注入游戏中管理器(网络AutoLoad, 登录AutoLoad等) 的具体实现与演示,同时开源供任意使用。

这里先给出实现本依赖注入框架的程序环境

Godot版本: Godot_v4.6.2-stable

Python版本: Python 3.13.13,

Python额外依赖库: Openpyxl

其它实现中注入的演示模块将会在文章具体阐述的时候提供

1. Godot 动态驱动表注入概述

1. 综合讨论与概述

以往我实现的架构多是手动添加AutoLoad管理器,管理器模块与游戏本身有一定的耦合度。即使可以通过手动复制到其他游戏项目中并微调实现跨项目使用,但是还是不太方便。这里我使用Excel依赖注入来尝试解除游戏管理器本身与游戏本体剩余的耦合性,实现模块的任意替换

在本框架中,依赖注入是启动游戏时读取表格中存入的模块地址,解析每个模块额外的启动参数然后加载到Godot中对应的,已经创建的AutoLoad接口中实现模块的注入。这样子我们就可以通过Excel表格控制游戏中具体的模块是谁是否启用或者是否带入其他依赖等,这样就方便了我们调试与后期模块的替换。

2. 具体实现流程概述

1. Godot启动游戏,切换场景至黑屏,启动注入,将启动参数发送给Python并等待。

2. Python执行Excel对应地址等参数转换,打包成Json固定格式放入Godot指定文件夹。

3. Godot接收到Python处理完成信号,将Json文件格式化成多种字典形式

4. Godot使用格式化完成后得到的字典,检查对应模块和参数,并开始注入至对应AutoLoad的静态数据中完成注入

5. Godot注入模块将游戏切换至主场景,开始游戏。

以上为实现流程的实现总览,演示中所有代码都将会完整解释,包括用于热重载,优化等但未使用的代码的预留代码。由于代码和演示解释较长,将会拆分文章解释,本篇文章将会重在演示功能,实现代码将会留于子文章

3. 项目结构图以及流程图概览

1. 项目流程图

Godot启动 → 进入黑屏场景 → 调用Python并等待执行

Python读取Excel配置表 → 数据转换 → 生成标准JSON文件

Godot检测文件生成完成 → 读取JSON并解析为字典

校验模块路径与启动参数 → 注入至AutoLoad接口静态数据

注入完成 → 切换至游戏主场景 → 正式运行游戏

2. 项目结构图

Python 部分: 结构图

Python文件结构:

PYTHON_CONFIGURATION_TABLE_CODE/

├── Injection_Table/

└── InjectionTable.xlsx # 注入配置表(Excel)

├── spreadsheet_processing/

├── __pycache__/ # Python 编译缓存目录

├── debug_tool

├── __pycache__/ # Python 编译缓存目录

└── debug_util.py # 调试日志工具(控制 print 输出)

├── excel_format_convert.py # Excel 数据格式转换模块

├── excel_processing.py # Excel 读取与解析模块

└── json_processing.py # JSON 生成与处理模块

├── FileProcessingMain.py # 主入口脚本(供Godot调用)

└── InjectionConvert.json # 输出的 JSON 注入文件

Python文件结构图:

Godot 部分: 结构图

1. 文件结构(主要结构):

res://

├── 00_Engine/ # 引擎核心层(注入框架与业务模块)

├── InjectionTable_Engine/ # 注入核心注入模块存放处

├── Injection_interface/ # 注入核心接口(AutoLoad入口)

├── Injection_Login_System/ # 登录系统注入模块

└── Injection_Server_System/ # 服务器/联机系统注入模块

├── 02_Game/ # 游戏业务层(场景与组件)

├── Component/ # 游戏组件

├── Level/ # 关卡/场景文件

└── System/ # 游戏系统模块

├── 05_Util/ # 通用工具库

├── Debug_Tool/ # 调试工具

└── InstantiationTool/ # 安全实例化工具

├── Python_configuration_table_code/ # Python配置解析工具目录

├── Injection_Table/ # Excel配置表存放目录

├── spreadsheet_processing/ # 表格处理核心模块

└── InjectionConvert.json # 输出的JSON配置文件

├── icon.svg

└── README.md

Godot主要结构图:

Godot全局AutoLoad状态:

Godot接口总管理器:

2. Godot 依赖注入实现演示

需要注意这里的演示将会简要解释对应,具体接口规则设置将会在子文章代码实现中阐述

注入使用的两个模块可以阅读以下文章(可读不读)

Godot(4.X): 外接Python处理Excel数据: 账号管理系统实现-CSDN博客

Godot(4.X): 全局AutoLoad网络管理中心实现_godot autoload-CSDN博客

1. Godot内部运行演示

上图已经给出Godot接口管理器的未运行状态,这里先给出Excel的状态,如下图(注入Excel)

解释:NAME: 注入模块名称START: 是否启用模块PATH: 注入模块地址

EXTRA: 是否有额外依赖AFFILIATED: 额外依赖注入地址

或者容错状态:

两种状态 Godot 均能获取正确注入依赖,这里首先关闭两个注入,可以看到注入接口下没有注入:

也就是InjectionLoginInjectionServer无子模块

这时候在Excel中启动注入,可以发现:

InjectionLoginInjectionServer下被注入子模块

观察调试完整注入流程:

然后给出使用演示,多人模块注入后正常使用:

注入模块调试信息正常使用:

2. Python处理Excel运行演示

启动Python全局调试输出,观察Godot内接收的输出,可以看到Python的执行流程与Godot执行流程的顺序

符合本框架执行流程

3. 具体代码实现演示与解释

1. Python 处理转换Excel为注入Json

Godot(4.x): Python处理转换Excel为注入Json-CSDN博客

2. Godot 内注入数据处理与总接口实现

(更新中)

3. Godot 注入接口定制实现接口注入

(更新中)

4. 结尾与开源说明

本框架中预留了可能的热插拔的预留代码,可以尝试修改实现热插拔。以下为开源地址供获取代码: looooiiui/Godot-Dynamic-Di

http://www.gsyq.cn/news/1426334.html

相关文章:

  • 2026年etpu发泡产品制造商排名,口碑好的有哪些? - 工业推荐榜
  • Windows右键菜单终极管理指南:用ContextMenuManager让右键菜单秒开如飞
  • 2026 锌钢护栏网源头厂家及小区庭院铁艺围栏产品综合测评分析 - 栗子测评
  • 2026年佰维存储数字IC笔试试卷带答案
  • 2026教培无人机、低空经济无人机、清洗无人机源头厂家实力推荐 - 栗子测评
  • 2026年05月值得关注!冷冻库实力厂家口碑推荐揭秘,速冻库/土建冷库/装配式冷库/小型冷库/冷库,冷冻库品牌哪个好 - 品牌推荐师
  • 2026年豆包广告公司价格,济宁威兴信息科技有限公司收费合理 - mypinpai
  • 常州闲置名表变现攻略:免费估价全域上门,劳力士欧米茄全品类回收 - 奢侈品回收测评
  • 2026年地埋箱泵一体化选购指南:费用怎么算? - mypinpai
  • 告别 ifconfig!在 Ubuntu 22.04 上优雅地配置静态 IP 与解决网卡重启丢失问题
  • Ubuntu 18.04/20.04上TensorRT的deb安装避坑指南:为什么你的CUDA和TensorRT版本总打架?
  • 2026 锌钢护栏网源头厂家综合推介对比小区铁艺围栏与庭院围栏铁艺厂家实力 - 栗子测评
  • 2026 主流铁路护栏网定制厂家整理 综合对比铁路防护栅栏哪家好及实体生产厂家实力 - 栗子测评
  • 2026年吉林昌邑售后有保障的TOP5电器门店,都有哪些值得关注?
  • Spring Boot项目里用@Async踩过的那些坑:从线程池耗尽到循环依赖的完整避坑指南
  • 从Ubuntu到UOS:手把手教你配置和调试LightDM显示管理器(含常见问题排查)
  • 2026瓷砖改色漆厂家/国内艺术漆十大品牌,选购测评指南 - 栗子测评
  • 2026年定制包装箱实力公司选购指南 - mypinpai
  • 服装包装袋厂家哪家好?2026服装包装袋厂家|服装拉链袋厂家推荐:勤思领衔,复合包装袋定制厂家盘点合集 - 栗子测评
  • 2026 热镀锌钢格栅生产厂家排名钢格栅板哪家好钢格栅板厂家推荐 - 栗子测评
  • 猫狗图片识别实战包:含CNN训练代码、数据增强配置、KerasTuner超参搜索及灰度/彩色双数据集
  • 不只是改个名字:深入理解MacOS 12.3移除Python2对AccessClient等老工具的影响与根治方案
  • 2026国内外墙仿石涂料、防脱落仿石漆、外墙仿石漆厂家盘点推荐 - 栗子测评
  • 超越roots:当你的MATLAB方程不是多项式时,fzero函数使用指南与对比
  • Vivado VIO IP核的256个探头不够用?试试这几种扩展调试带宽的“野路子”
  • 2026 沟盖板踏步板源头厂家盘点光伏走道板插接平台钢格板生产厂家综合榜单 - 栗子测评
  • 告别TeamViewer!用C++和libvncserver从零打造一个轻量级Linux远程桌面(附完整源码)
  • ScreenTranslator:打破语言障碍的智能屏幕翻译利器
  • 小众选题发文有多香?NHANES高雄激素血症指标上线,高分模板直接用!
  • 2026 产品测评汇总沟盖板踏步板源头厂家光伏走道板插接平台钢格板厂家解析 - 栗子测评