Exemplo n.º 1
0
        public void ListenTo(ITrackable activationCatalyst)
        {
            if (_activationCatalyst != null)
            {
                throw new System.InvalidOperationException($"World cannot listen to multiple catalysts at a time.");
            }
            _activationCatalyst = activationCatalyst;

            PositionTracker.Subscribe(activationCatalyst, OnPositionUpdate);
            var position = PositionTracker.GetCurrentPosition(activationCatalyst);

            OnPositionUpdate(activationCatalyst, null, position);
        }
Exemplo n.º 2
0
        public void Register(EnemyHealth enemy)
        {
            Enemies.Add(enemy);
            enemy.transform.SetParent(transform, true);

            PositionTracker.Subscribe(enemy, OnEnemyPositionUpdate);

            enemy.OnActorDeath += Unregister;

            enemy.gameObject.SetActive(gameObject.activeInHierarchy);

            OnChunkChanged.Raise(this);
        }