public World(WorldSettingData settingdata) { this.name = settingdata.worldName; string[] useSystem = settingdata.useSystemList.ToArray(); for (int i = 0; i < useSystem.Length; i++) { string systemName = useSystem[i]; Type type = ReflectionUtils.GetTypeByTypeFullName(systemName); if (type == null) { continue; } object obj = ReflectionUtils.CreateDefultInstance(type); ISystem system = (ISystem)obj; system.delayExecute = settingdata.allSystemSettingDatas[systemName].delayExecute / 1000f; system.Initialize(this); systems.Add(system); } groupES = new ECSGroupManager(this); OnEntityAddComponent += groupES.OnEntityComponentChange; OnEntityRemoveComponent += groupES.OnEntityComponentChange; OnEntityCreate += groupES.OnEntityCreate; OnEntityDestroy += groupES.OnEntityDestroy; poolEntity = new PoolClassManager <Entity>(60, ResetEntity); }