World.DefaultGameObjectInjectionWorld とは

バージョン

Entities 0.6.0

Worldとは

必要な部分だけ抜き出すとこんな感じ

public partial class World : IDisposable
{
    public static World DefaultGameObjectInjectionWorld { get; set; }
    private EntityManager m_EntityManager;
    public string Name { get; }

    public EntityManager EntityManager => m_EntityManager;

    public World(string name)
    {
        Name = name;
        m_EntityManager = new EntityManager(this);
    }
}

World.DefaultGameObjectInjectionWorldの設定

DefaultWorldInitialization.csDefaultWorldInitialization.Initialize()

public static void Initialize(string defaultWorldName, bool editorWorld)
{
    var world = new World(defaultWorldName);
    World.DefaultGameObjectInjectionWorld = world;
}

のようにしてWorld.DefaultGameObjectを注入される。

また、このDefaultWorldInitialization.Initialize()は次のようにAutomaticWorldBootstrap.Initialize() で実行される。

static class AutomaticWorldBootstrap
{
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    static void Initialize()
    {
        DefaultWorldInitialization.Initialize("Default World", false);
    }
}