示例#1
0
        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);
        }
示例#2
0
 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);
 }
示例#3
0
        // 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];
        }