在静态类中存储组件可行吗?

问题描述 投票:0回答:0

我正在为 C# 中 ECS 的自定义实现而苦苦挣扎。

我将我的组件存储在这样的静态类中:

internal static class ComponentStorage<T> where T : struct, IComponent
{
    private static readonly T[] components = new T[capacity];
    public static ref T Get(int index)
    {
        return ref components[index];
    }
    public static void Add(T component, int index)
    {
        components[index] = component;
    }
}

我这样做主要有两个原因:

  • 它允许我将我的组件存储在连续的结构数组中
  • 无需装箱/拆箱即可轻松获取组件

我用表格等管理管理器类中的组件

到目前为止,我的实施工作正常,但我对建立这种方法感到紧张。

  • 我是否因为一般的静力学而遗漏了任何东西,比如隐藏拳击?性能测试按预期进行,但我还没有实现任何 SystemManager 类的东西,因为这样做非常棘手,如果我一直错了,我不想从那个开始。

我找不到静态通用拳击问题的正确答案,我还没有看到任何 ecs 使用这个。

c# generics static entity-component-system
© www.soinside.com 2019 - 2024. All rights reserved.