Пример #1
0
        public void Destroy(IHexMesh mesh)
        {
            allMeshes.Remove(mesh);

            var concreteMesh = mesh as HexMesh;

            if (concreteMesh != null)
            {
                HexMeshPool.Despawn(concreteMesh);
            }
        }
Пример #2
0
        Task DespawnCoroutine(int count)
        {
            int length = spawnedObject.Count;

            for (int i = 0; i < count; i++)
            {
                int index = length - 1 - i;
                pool.Despawn(spawnedObject[index]);
                spawnedObject.RemoveAt(index);
            }
            return(Task.CompletedTask);
        }
Пример #3
0
        public void OnSpawned(int exponent, Vector3 position, IMemoryPool pool)
        {
            transform.position = position;
            _pool = pool;
            ViewModel.SetExponent(exponent);
            _particleSystem.Stop();
            _particleSystem.Play();

            _serialDisposable.Disposable =
                Observable.Timer(TimeSpan.FromSeconds(_particleSystemMain.duration))
                .Subscribe(_ => _pool.Despawn(this));
        }
Пример #4
0
 public void OnSpawned(AudioClip clip, AudioMixerGroup mixerGroup, float pitch, float delay, IMemoryPool pool)
 {
     _pool              = pool;
     _audioSource.clip  = clip;
     _audioSource.pitch = pitch;
     _audioSource.outputAudioMixerGroup = mixerGroup;
     _serialDisposable.Disposable       = Observable.Timer(TimeSpan.FromSeconds(delay)).Subscribe(_ =>
     {
         _audioSource.Play();
         _serialDisposable.Disposable = Observable.Timer(TimeSpan.FromSeconds(clip.length + 0.1f))
                                        .Subscribe(__ => _pool.Despawn(this));
     });
 }
Пример #5
0
        public void Clear()
        {
            if (cells == null || cells.Count == 0)
            {
                return;
            }

            CellSignals.MapBeingClearedSignal.OnNext(new UniRx.Unit());

            cells.Clear();

            foreach (var chunk in chunks)
            {
                MapChunkPool.Despawn(chunk);
            }

            chunks     = null;
            castChunks = null;

            if (RiverSurfaceMesh != null)
            {
                HexMeshFactory.Destroy(RiverSurfaceMesh);
            }
            if (RiverBankMesh != null)
            {
                HexMeshFactory.Destroy(RiverBankMesh);
            }
            if (RiverDuckMesh != null)
            {
                HexMeshFactory.Destroy(RiverDuckMesh);
            }
            if (FarmMesh != null)
            {
                HexMeshFactory.Destroy(FarmMesh);
            }

            RiverSurfaceMesh = null;
            RiverBankMesh    = null;
            RiverDuckMesh    = null;
            FarmMesh         = null;
        }
Пример #6
0
 public virtual void Dispose()
 {
     _pool.Despawn(this);
 }
Пример #7
0
 public void Dispose()
 {
     pool.Despawn(this);
 }