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); }
public bool IsHaveRepeatName(WorldSettingData data) { for (int i = 0; i < allWorldSettingData.Count; i++) { if (allWorldSettingData[i] != data && allWorldSettingData[i].worldName == data.worldName) { return(true); } } return(false); }
// Use this for initialization public static void Initialize(WorldManagerSettingData settingData) { for (int i = 0; i < settingData.allWorldSettingData.Count; i++) { WorldSettingData data = settingData.allWorldSettingData[i]; World world = new World(data); allWorldDic.Add(world.Name, world); } currentRunWorld = allWorldDic[settingData.defaultFirstRunWorldName]; }