Esempio n. 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);
        }