mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-12 22:03:30 +08:00
- 新增 documentation-full-coverage-governance active topic 与首轮 inventory、trace 入口 - 补充 GFramework.Ecs.Arch.Abstractions README、抽象接口页面与导航映射 - 更新 API 参考页与根 README,明确内部支撑模块 owner 和阅读链路
96 lines
2.8 KiB
Markdown
96 lines
2.8 KiB
Markdown
---
|
||
title: Ecs.Arch Abstractions
|
||
description: GFramework.Ecs.Arch.Abstractions 的契约边界、包关系和最小接入路径。
|
||
---
|
||
|
||
# Ecs.Arch Abstractions
|
||
|
||
`GFramework.Ecs.Arch.Abstractions` 是 Arch ECS 集成层的契约包。
|
||
|
||
它建立在 `GFramework.Core.Abstractions` 之上,只定义 ECS 模块更新、系统适配和配置对象,不负责默认的 Arch
|
||
`World` 装配、扩展方法或系统基类。
|
||
|
||
如果你需要开箱即用的集成实现,请改为依赖 `GFramework.Ecs.Arch`。
|
||
|
||
## 什么时候单独依赖它
|
||
|
||
- 你在做共享宿主循环、工具层或 feature 包,只需要 `IArchEcsModule`
|
||
- 你想让不同程序集共享 `ArchOptions` 或系统适配契约,但不直接绑定默认 runtime
|
||
- 你需要为测试或外部适配层提供替身实现
|
||
|
||
## 包关系
|
||
|
||
- 契约层:`GFramework.Ecs.Arch.Abstractions`
|
||
- 运行时实现:`GFramework.Ecs.Arch`
|
||
- 底层基础契约:`GFramework.Core.Abstractions`
|
||
|
||
## 契约地图
|
||
|
||
| 类型 | 作用 |
|
||
| --- | --- |
|
||
| `IArchEcsModule` | 统一更新 ECS 系统的服务模块契约 |
|
||
| `IArchSystemAdapter<T>` | 让 ECS 系统适配到 `ISystem` 生命周期 |
|
||
| `ArchOptions` | 承载 `WorldCapacity`、`EnableStatistics`、`Priority` 等配置 |
|
||
|
||
## 最小接入路径
|
||
|
||
### 1. 共享模块只依赖更新契约
|
||
|
||
```csharp
|
||
using GFramework.Ecs.Arch.Abstractions;
|
||
|
||
public sealed class GameplayHost
|
||
{
|
||
private readonly IArchEcsModule _ecsModule;
|
||
|
||
public GameplayHost(IArchEcsModule ecsModule)
|
||
{
|
||
_ecsModule = ecsModule;
|
||
}
|
||
|
||
public void Tick(float deltaTime)
|
||
{
|
||
_ecsModule.Update(deltaTime);
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2. 共享配置对象
|
||
|
||
```csharp
|
||
using GFramework.Ecs.Arch.Abstractions;
|
||
|
||
var options = new ArchOptions
|
||
{
|
||
WorldCapacity = 2048,
|
||
EnableStatistics = true,
|
||
Priority = 40
|
||
};
|
||
```
|
||
|
||
### 3. 什么时候切到运行时包
|
||
|
||
下面这些需求都属于 `GFramework.Ecs.Arch` 的职责,而不是本包:
|
||
|
||
- 通过 `UseArch(...)` 把模块挂进架构
|
||
- 使用默认的 `ArchSystemAdapter<T>` 基类
|
||
- 访问 Arch `World` 与查询 API
|
||
- 使用默认的模块装配和生命周期实现
|
||
|
||
## 阅读顺序
|
||
|
||
1. 先读本页,确认你是否真的只需要契约层
|
||
2. 如果需要默认实现,再看 [`../ecs/arch.md`](../ecs/arch.md)
|
||
3. 回到对应模块 README:
|
||
- `GFramework.Ecs.Arch.Abstractions/README.md`
|
||
- `GFramework.Ecs.Arch/README.md`
|
||
|
||
## 边界提醒
|
||
|
||
- `GFramework.Core.SourceGenerators.Abstractions`
|
||
- `GFramework.Godot.SourceGenerators.Abstractions`
|
||
- `GFramework.SourceGenerators.Common`
|
||
|
||
这些目录当前都不是独立消费模块,而是源码生成器家族的内部支撑组件。它们不属于抽象接口栏目里的独立采用入口,
|
||
应分别跟随 `Core.SourceGenerators`、`Godot.SourceGenerators` 或其他生成器模块的 README 与专题页维护。
|