Ejemplo n.º 1
0
 public PoolObjectComponent GetItem(PoolObjectComponent PrefabRef)
 {
     if (PrefabRef == null)
     {
         Debug.LogError("Get null ref");
         return(null);
     }
     else if (_mapPools.ContainsKey(PrefabRef) == false)
     {
         Debug.LogWarning("[" + PrefabRef + "] not present in pool");
         CreatePool(PrefabRef, 10);
     }
     return(_mapPools[PrefabRef].GetItem());
 }
Ejemplo n.º 2
0
    public void CreatePool(PoolObjectComponent PrefabToPool, int Size)
    {
        if (_mapPools.ContainsKey(PrefabToPool))
        {
            Debug.LogWarning("[" + PrefabToPool.gameObject.name + "] is already in it");
            return;
        }

        GameObject goContainer    = new GameObject("[" + PrefabToPool.name + "]");
        Transform  transContainer = goContainer.transform;

        transContainer.parent   = _container;
        _mapPools[PrefabToPool] = new PoolPrefab(PrefabToPool, transContainer, Size);
    }
Ejemplo n.º 3
0
    private void GetBehaviours()
    {
        _shootComp           = GetComponent <ShootComponent>();
        _moveComp            = GetComponent <MoveComponent>();
        _bodyComp            = GetComponent <BodyComponent>();
        _poolObjectComponent = GetComponent <PoolObjectComponent>();
        if (_poolObjectComponent)
        {
            _poolObjectComponent.OnResetBeforeBackToPool += ResetAfterDisable;
        }

        if (_moveComp)
        {
            _moveComp.OnOutOfBounds += SelfDestroy;
        }
        if (_bodyComp)
        {
            _bodyComp.OnDeath += SelfDestroy;
        }
    }
Ejemplo n.º 4
0
 public DataPool(PoolObjectComponent Prefab, int SizePreload)
 {
     this.Prefab      = Prefab;
     this.SizePreload = SizePreload;
 }
Ejemplo n.º 5
0
 public void BackToPool(PoolObjectComponent Object)
 {
     _poolAvailable.Push(Object);
     Object.gameObject.SetActive(false);
 }
Ejemplo n.º 6
0
 public PoolPrefab(PoolObjectComponent Prefab, Transform Container, int Size)
 {
     _prefab    = Prefab.gameObject;
     _container = Container;
     FillPool(Size);
 }
Ejemplo n.º 7
0
 public T GetItem <T>(PoolObjectComponent PrefabRef)
 {
     return(GetItem(PrefabRef).GetComponent <T>());
 }