Ejemplo n.º 1
0
        // ----------------------------------------------------------------------------------------------------
        #endregion

        #region Despawn Methods
        // ----------------------------------------------------------------------------------------------------
        /// <summary>
        /// Despawns and returns an instance.
        /// </summary>
        /// <param name="instance">The instance.</param>
        public void Despawn(FeatherPoolInstance instance)
        {
            // Check if object already despwned
            if (!this.activeInstances.Contains(instance))
            {
                return;
            }

            // Remove instance from active instances and makes it available
            this.activeInstances.Remove(instance);
            this.availableInstances.Push(instance);

            // Signal if implementing
            instance.InvokeOnDespawning();

            // Reset Object
            instance.PrefabInstance.SetActive(false);
            instance.PrefabInstance.transform.SetParent(this.transform);
            instance.ResetTransform();

            // Signal if implementing
            instance.InvokeOnDespawning();

#if UNITY_EDITOR
            UpdateProgressBar();
#endif
        }