예제 #1
0
    private void Awake()
    {
        //Get main camera;
        camera = Camera.main;

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

        activeTileMap = new Dictionary <Vector2, RoadTile>();

        prefabObjects.RemoveAll((t) =>
        {
            RoadTile tile = t.GetComponent <RoadTile>();

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

        Dictionary <RoadTile.Type, RoadTile> tileCatalogue = new Dictionary <RoadTile.Type, RoadTile>();

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

        roadTilePool = new CataloguePool <RoadTile.Type, RoadTile>(initialCountFromEach, transform, tileCatalogue);
        foreach (RoadTile tile in roadTilePool.InitializePool())
        {
            tile.InitializeAsPoolItem();
        }

        Rotator rotator = rotatorPrefab.GetComponent <Rotator>();

        rotatorPool = new SingularPool <Rotator>(initialCountFromEach, transform, rotator);
        foreach (Rotator item in rotatorPool.InitializePool())
        {
            item.InitializeAsPoolItem();
        }

        InstallTile(RoadTile.Type.Straight, Vector3.zero, Vector3.forward);
        standingTilePosition = lastOutDirection;
        lastOutDirection     = GetNewOutDirection(RoadTile.Type.Straight, lastOutDirection);


        Generate();
    }
예제 #2
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();
    }