Ejemplo n.º 1
0
    private void Start()
    {
        //Get main camera;
        camera = Camera.main;

        List <BallPlatformTile> tilePrefabs = new List <BallPlatformTile>();

        prefabTiles.RemoveAll((t) =>
        {
            BallPlatformTile tile = t.GetComponent <BallPlatformTile>();

            if (tile != null)
            {
                tilePrefabs.Add(tile);
            }
            return(tile == null);
        }
                              );

        Dictionary <int, BallPlatformTile> tileCatalogue = new Dictionary <int, BallPlatformTile>();

        foreach (BallPlatformTile tile in tilePrefabs)
        {
            if (!tileCatalogue.ContainsKey(tile.Type))
            {
                tileCatalogue.Add(tile.Type, tile);
            }
        }

        tilePool = new CataloguePool <int, BallPlatformTile>(initialCountFromEach, transform, tileCatalogue);
        foreach (BallPlatformTile tile in tilePool.InitializePool())
        {
            tile.InitializeAsPoolItem(true);
        }

        Pickup pickup = prefabPickup.GetComponent <Pickup>();

        pickupPool = new SingularPool <Pickup>(initialCountFromEach, transform, pickup);
        foreach (Pickup item in pickupPool.InitializePool())
        {
            item.InitializeAsPoolItem();
        }

        GenerateTiles();
    }
Ejemplo n.º 2
0
    public void InstallTile(Vector3 position)
    {
        BallPlatformTile installedTile = tilePool.GetFromPool(tileTypeIteration, (t) => t.InitializeAsPoolItem(false));

        installedTile.transform.position = position;

        lastWorldPoint = position;

        tileTypeIteration += 1;

        totalTileCount += 1;

        if (tileTypeIteration >= tilePool.TypeCount)
        {
            tileTypeIteration = 0;
        }

        installedTile.ApplyInstallProcess();
    }
Ejemplo n.º 3
0
 private void OnTileDisappear(BallPlatformTile tile)
 {
     tilePool.ReturnToPool(tile.Type, tile);
     tile.OnFullHidden -= OnTileDisappear;
 }
Ejemplo n.º 4
0
 public void ReturnTile(BallPlatformTile tile)
 {
     tile.ApplyReturnProcess();
     tile.OnFullHidden += OnTileDisappear;
 }