Example #1
0
    void GenerateRewardCollectables(Vector2Int sizeMaze, TileEntity[,] tiles, TypeTile setType, GameObject rewardCollectableObject, int countCollectables)
    {
        if (sizeMaze == null || tiles == null)
        {
            Debug.LogError("Отсутствует игровое поле для установки игровых обьектов для награждения!");
        }
        else if (rewardCollectableObject == null)
        {
            Debug.LogError("Требуемый шаблон игрового обьекта для награждения отсутствует!");
        }
        else if ((sizeMaze.x * sizeMaze.y) < countCollectables || countCollectables <= 0)
        {
            Debug.LogError("Количество награждаемых игровых объектов должен быть в пределах от 1 до площади игрового пространства!");
        }
        else
        {
            for (int i = 0; i < countCollectables; i++)
            {
                int x = Random.Range(0, sizeMaze.x - 1);
                int y = Random.Range(0, sizeMaze.y - 1);

                if (tiles[x, y].Type == TypeTile.Null)
                {
                    GameObject collect = rewardCollectableObject;
                    tiles[x, y].SpawnOnFloor(collect);
                    tiles[x, y].gameObject.name += (" " + setType.ToString());
                    tiles[x, y].Type             = setType;
                }
                else
                {
                    i--;
                }
            }
            Debug.Log("Установка награждаемых игровых объектов выполнена!");
        }
    }