public void Init() { HeadFeature?.Init(RootSystems); MainFeature?.Init(RootSystems); TailFeature?.Init(RootSystems); _debugger?.Init(RootSystems, World); RootSystems.ProcessInjects(); RootSystems.Init(); }
public void Start() { erosionShader = Resources.Load <ComputeShader>("ComputeShaders/Erosion"); heightMapComputeShader = Resources.Load <ComputeShader>("ComputeShaders/HeightMap"); world = new EcsWorld(); systems = new EcsSystems(world) .Add(new GenerateHeightMapSystem()) .Add(new ErodeSystem()) .Add(new ConstructMeshSystem()); systems.ProcessInjects(); systems.Init(); }
private void Start() { // Bind models to view models FindObjectOfType <StaminaViewModel>().Bind(_staminaModel); FindObjectOfType <HealthViewModel>().Bind(_healthModel); #if UNITY_EDITOR CreateInspector(); #endif // Prepare systems PrepareUpdateSystems(); PrepareFixedUpdateSystems(); // Merge systems _update.ProcessInjects(); _fixedUpdate.ProcessInjects(); // Init systems _fixedUpdate.Init(); _update.Init(); }
private void Start() { ecsWorld = new EcsWorld(); initSystems = new EcsSystems(ecsWorld) .Add(new PlayerInitSystem()) .Add(new TubeInitSystem()) .Add(new TriggerInitSystem()); updateSystems = new EcsSystems(ecsWorld) .Add(new PlayerJumpSystem()) .Add(new TubeMoveSystem()) .Add(new HitSystem()) .OneFrame <Hit>(); initSystems.ProcessInjects(); updateSystems.ProcessInjects(); initSystems.Init(); updateSystems.Init(); }
protected virtual void FinalizeSystems() { fixedUpdateSystems.ProcessInjects(); updateSystems.ProcessInjects(); lateUpdateSystems.ProcessInjects(); #if UNITY_EDITOR gizmosSystems.ProcessInjects(); #endif fixedUpdateSystems.Init(); updateSystems.Init(); lateUpdateSystems.Init(); #if UNITY_EDITOR gizmosSystems.Init(); #endif isRunning = true; }
private void StartDistinct() { _world = new EcsWorld(); var ecsSystems = new EcsSystems(_world) .Add(new MotionTargetInitSystem() { prefab = _prefab, amount = _amount, radius = _radius }); ecsSystems.ProcessInjects(); ecsSystems.Init(); _systems.Add(ecsSystems); ecsSystems = new EcsSystems(_world) .Add(new MotionTargetInitSystem() { prefab = _prefab, amount = _amount, radius = _radius }); ecsSystems.ProcessInjects(); ecsSystems.Init(); _systems.Add(ecsSystems); ecsSystems = new EcsSystems(_world) .Add(new MotionTargetInitSystem() { prefab = _prefab, amount = _amount, radius = _radius }); ecsSystems.ProcessInjects(); ecsSystems.Init(); _systems.Add(ecsSystems); }
public void Start() { var lss = new LocalSharedState(); lss.Count = _options.ComponentsCount; var worldCfg = new EcsWorldConfig() { FilterEntitiesCacheSize = lss.Count, WorldEntitiesCacheSize = lss.Count, }; _world = new EcsWorld(worldCfg); _systems = new EcsSystems(_world); _systems .Add(new InitSystem()) .Add(new MoveSystem()) .Inject(lss) ; _systems.ProcessInjects(); _systems.Init(); }
private void OnEnable() { ecsWorld = new EcsWorld(); systems = new EcsSystems(ecsWorld); systemsPhysics = new EcsSystems(ecsWorld); random = new System.Random(); #if UNITY_EDITOR Leopotam.Ecs.UnityIntegration.EcsWorldObserver.Create(ecsWorld); Leopotam.Ecs.UnityIntegration.EcsSystemsObserver.Create(systems); #endif systems .Add(new InputControllerSystem()) .Add(new MovementSystem()) .Add(new RotationSystem()) .Add(new CooldownRateSystem()) .Add(new FireSystem()) .Add(new ProjectileMoveSystem()) .Add(new DamageSystem()) .Add(new HpShowSystem()) .Add(new PhotonHealthPointSystem()) .Add(new PlayerSpawnSystems()) .Add(new DestroySystem()) .Add(new SpawnCaptureSystem()) .Add(new SpawnInitSystem()) .Add(new CrossCaptureSystem()) .Add(new ProjectileLifetimeSystem()) .Add(new DestroyedCounter()) .Add(new PerkInitSystem()) .Add(new ProgressSystem()) .Add(new PerkSystem()) .Add(new AIControllerSystem()) .Add(new AIMoveDirectionSystem()) .Add(new AIRotationSystem()) .Add(new AIFireSystem()) .Add(new AIPerkSystem()) .Add(new Perk1System()) .Add(new Perk2System()) .Add(new Perk3System()) //.Add(new AIMoveDirectionSystem()) //.Add(new AIMoveDirectionSystem()) .OneFrame <PhotonHealthPointEvent>() .OneFrame <ProjectileCollisionEvent>() .OneFrame <PlayerSpawnEvent>() .OneFrame <DestroyEvent>() .OneFrame <ProgressEvent>() .OneFrame <Perk1>() .OneFrame <Perk2>() .OneFrame <Perk3>() .Inject(gameManager) .Inject(joystick); systemsPhysics //.Add(new CarAccelerationSystem()) //.Add(new CarDecelerationSystem()) .Inject(gameManager); systems.ProcessInjects(); systemsPhysics.ProcessInjects(); }
public void Start() { var ss = CreateSharedState(_options); var worldCfg = new EcsWorldConfig() { FilterEntitiesCacheSize = _options.EntitiesMax, WorldEntitiesCacheSize = _options.EntitiesMax, }; _world = new EcsWorld(worldCfg); _systems = new EcsSystems(_world, "RUN SYSTEMS"); _systems .Add(new InitSystem()) .Add(new TimeSystem()) .Add(new ShootSystem()) .Add(new BulletSystem()) .Add(new MoveSystem()) ; AddActorTypeSystemsByTypeCount(); if (_isRendering) { _systems .Add(new ActorViewUpdateSystem()) .Add(new BulletViewDeleteSystem()) .Add(new BulletViewUpdateSystem()) ; } _systems .Add(new BulletDeleteSystem()) ; _systems .Inject(ss) .Inject(new TimeService()) .Inject(new ActorService()) .Inject(new BulletService()) ; if (_isRendering) { var bullet = _options.BulletPrefab; var bulletViewService = new BulletViewService() { Pool = new Pool <Transform>( () => { var tr = Object.Instantiate(bullet).transform; tr.gameObject.SetActive(false); return(tr); }, 2), Views = new Dictionary <int, Transform>() }; var actor = _options.ShooterPrefab; var actorViewService = new ActorViewService() { Pool = new Pool <Transform>( () => { var tr = Object.Instantiate(actor).transform; tr.gameObject.SetActive(false); return(tr); }, 2), Views = new Dictionary <int, Transform>() }; _systems .Inject(bulletViewService) .Inject(actorViewService) ; } _systems.ProcessInjects(); _systems.Init(); }