Exemple #1
0
    void Start()
    {
        GameObject randomPattern = patterns[Random.Range(0, patterns.Length)];

        activePattern = pool.Create(randomPattern.name, Vector3.zero);

        randomPattern = patterns[Random.Range(0, patterns.Length)];
        Vector3 nextPatternPos = new Vector3(activePattern.transform.position.x + activePattern.collider2D.bounds.size.x, 0, 0);

        nextPattern = pool.Create(randomPattern.name, nextPatternPos);
    }
    public void BuildEnvironment()
    {
        var allPrefabs = _itemModels.Select(x => x.Prefab).ToList();
        var gridArea   = DefineGridArea();

        var poolSize = (int)_levelData.GroundSize * (int)_levelData.GroundSize;

        for (int i = 0; i < _levelData.GroundSize; i++)
        {
            for (int j = 0; j < _levelData.GroundSize; j++)
            {
                var itemPrefab = allPrefabs[Random.Range(0, allPrefabs.Count)];
                var randomSeed = Random.Range(0, _randomSeed);

                if (randomSeed == 0)
                {
                    var item = _poolManager.Create <Item>(itemPrefab, _environmentParent, poolSize);
                    item.SetPosition(_levelData.GroundZeroPoint.x + i, _levelData.GroundZeroPoint.z + j);

                    foreach (var position in gridArea)
                    {
                        if (position == item.transform.position)
                        {
                            _poolManager.Deactivate(item);
                        }
                    }
                }
            }
        }
    }
Exemple #3
0
 public virtual void CreateBasePool()
 {
     Common   = PoolManager.Create("Common");
     Unit     = PoolManager.Create("Units");
     Perform  = PoolManager.Create("Perform");
     HUD      = PoolManager.Create("HUD");
     JumpText = PoolManager.Create("JumpText");
 }
Exemple #4
0
 // Application entry point
 private void Awake()
 {
     AppManager.GUI        = GUIManager.Create(_uiRoot);
     AppManager.Audio      = _audioManager;
     AppManager.Pool       = PoolManager.Create(_poolContainer);
     AppManager.PlayerData = new PlayerModel();
     AppManager.Game       = GameController.Create(_gameObjectsContainer);
     Destroy(gameObject);
 }
Exemple #5
0
    public static GameObject Get(PrefabType type)
    {
        var pool = m_Instance.GetPool(type);

        if (pool.Collection.Count > 0)
        {
            var obj = pool.Collection[0];
            pool.Collection.RemoveAt(0);
            m_Instance.OnPoolLeave(type, obj);
            return(obj);
        }
        m_Instance.Create(type);
        return(Get(type));
    }
Exemple #6
0
    public void BuildGrid()
    {
        var poolSize = (int)_gridSize.HeightSize * (int)_gridSize.WidthSize;

        for (int i = 0; i < _gridSize.HeightSize; i++)
        {
            for (int j = 0; j < _gridSize.WidthSize; j++)
            {
                var cell = _poolManager.Create <Cell>(_cellPrefab, _gridParent, poolSize);
                cell.SetPosition(i, j);
                _cells.Add(cell);
            }
        }

        SetGridParentPosition();
    }
    public T ShowPopup <T>(object obj = null) where T : BasePopup
    {
        var popup = _poolManager.GetPool(typeof(T))?.Activate <T>();

        if (popup == null)
        {
            var popupPrefab = Resources.Load <GameObject>("UI/Popups/" + typeof(T));
            var newPopup    = _poolManager.Create <T>(popupPrefab, _uiParent);
            newPopup.Show(obj);
            return(newPopup);
        }
        else
        {
            popup.Show(obj);
            return(popup);
        }
    }