feat(ecs): 为ECS相关功能添加实验性特性标记

- 在ArchitectureContext中的ECS相关方法添加[Experimental]特性
- 在ECS测试类上添加[Experimental]特性标记
- 为ECS基础测试方法添加实验性特性
- 统一使用System.Diagnostics.CodeAnalysis命名空间
- 标记GetEcsWorld、RegisterEcsSystem等核心方法为实验性API
This commit is contained in:
GeWuYou 2026-02-23 11:34:26 +08:00 committed by gewuyou
parent a65d4fa294
commit 89b7bcca8a
4 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Reflection; using System.Reflection;
using Arch.Core; using Arch.Core;
using GFramework.Core.Abstractions.ecs; using GFramework.Core.Abstractions.ecs;
@ -13,6 +14,7 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.ecs; namespace GFramework.Core.Tests.ecs;
[TestFixture] [TestFixture]
[Experimental("GFrameworkECS")]
public class EcsAdvancedTests public class EcsAdvancedTests
{ {
[SetUp] [SetUp]

View File

@ -1,3 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Reflection; using System.Reflection;
using Arch.Core; using Arch.Core;
using GFramework.Core.Abstractions.ecs; using GFramework.Core.Abstractions.ecs;
@ -16,6 +17,7 @@ namespace GFramework.Core.Tests.ecs;
/// 包括实体创建、组件设置、系统更新、实体销毁等基本操作。 /// 包括实体创建、组件设置、系统更新、实体销毁等基本操作。
/// </summary> /// </summary>
[TestFixture] [TestFixture]
[Experimental("GFrameworkECS")]
public class EcsBasicTests public class EcsBasicTests
{ {
/// <summary> /// <summary>
@ -80,6 +82,7 @@ public class EcsBasicTests
/// 测试ECS初始化功能验证是否能正确创建EcsWorld实例。 /// 测试ECS初始化功能验证是否能正确创建EcsWorld实例。
/// </summary> /// </summary>
[Test] [Test]
[Experimental("GFrameworkECS")]
public void Test_01_InitializeEcs_Should_Create_EcsWorld() public void Test_01_InitializeEcs_Should_Create_EcsWorld()
{ {
_context!.InitializeEcs(); _context!.InitializeEcs();

View File

@ -1,3 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Reflection; using System.Reflection;
using Arch.Core; using Arch.Core;
using GFramework.Core.Abstractions.ecs; using GFramework.Core.Abstractions.ecs;
@ -16,6 +17,7 @@ namespace GFramework.Core.Tests.ecs;
/// 包括实体管理、组件操作、系统调度、优先级控制以及性能基准测试。 /// 包括实体管理、组件操作、系统调度、优先级控制以及性能基准测试。
/// </summary> /// </summary>
[TestFixture] [TestFixture]
[Experimental("GFrameworkECS")]
public class EcsIntegrationTests public class EcsIntegrationTests
{ {
/// <summary> /// <summary>

View File

@ -1,3 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using GFramework.Core.Abstractions.architecture; using GFramework.Core.Abstractions.architecture;
using GFramework.Core.Abstractions.command; using GFramework.Core.Abstractions.command;
using GFramework.Core.Abstractions.ecs; using GFramework.Core.Abstractions.ecs;
@ -423,6 +424,7 @@ public class ArchitectureContext(IIocContainer container) : IArchitectureContext
/// 获取ECS世界实例 /// 获取ECS世界实例
/// </summary> /// </summary>
/// <returns>ECS世界实例</returns> /// <returns>ECS世界实例</returns>
[Experimental("GFrameworkECS")]
public IEcsWorld GetEcsWorld() public IEcsWorld GetEcsWorld()
{ {
return _ecsWorld ?? return _ecsWorld ??
@ -433,6 +435,7 @@ public class ArchitectureContext(IIocContainer container) : IArchitectureContext
/// 注册ECS系统 /// 注册ECS系统
/// </summary> /// </summary>
/// <typeparam name="T">ECS系统类型</typeparam> /// <typeparam name="T">ECS系统类型</typeparam>
[Experimental("GFrameworkECS")]
public void RegisterEcsSystem<T>() where T : class, IEcsSystem public void RegisterEcsSystem<T>() where T : class, IEcsSystem
{ {
// 使用RegisterPlurality注册到所有接口 // 使用RegisterPlurality注册到所有接口
@ -442,6 +445,7 @@ public class ArchitectureContext(IIocContainer container) : IArchitectureContext
/// <summary> /// <summary>
/// 初始化ECS在架构初始化时调用 /// 初始化ECS在架构初始化时调用
/// </summary> /// </summary>
[Experimental("GFrameworkECS")]
public void InitializeEcs() public void InitializeEcs()
{ {
if (_ecsWorld != null) return; if (_ecsWorld != null) return;
@ -463,6 +467,7 @@ public class ArchitectureContext(IIocContainer container) : IArchitectureContext
/// <summary> /// <summary>
/// 销毁ECS资源 /// 销毁ECS资源
/// </summary> /// </summary>
[Experimental("GFrameworkECS")]
private void DisposeEcs() private void DisposeEcs()
{ {
_ecsWorld?.Dispose(); _ecsWorld?.Dispose();