Beispiel #1
0
    private EnumObstacles GetObstacleType(int _count)
    {
        //TODO:
        if (_count == 1)
        {
            return(EnumObstacles.Horizontal);
        }
        else if (_count == 2)
        {
            //Шанс генерации особых объектов
            var specObstacle = GenerateSpecObstacle();
            if (specObstacle != EnumObstacles.NA)
            {
                return(specObstacle);
            }

            //Обычная генерация
            var types = new EnumObstacles[] { EnumObstacles.Small, lastObstacle == EnumObstacles.Horizontal ? EnumObstacles.Horizontal : EnumObstacles.Small, EnumObstacles.Small, };
            return(types.GetRandom());
        }
        else    //(_count > 2)
        {
            //Шанс генерации особых объектов
            var specObstacle = GenerateSpecObstacle();
            if (specObstacle != EnumObstacles.NA)
            {
                return(specObstacle);
            }

            //Обычная генерация
            var types = new EnumObstacles[] { EnumObstacles.Small, };
            return(types.GetRandom());
        }
    }
Beispiel #2
0
    private void Spawn()
    {
        //Кол-во за раз
        lastBorderIndexes.Clear();
        var count = GetSpawnerCount();

        for (int i = 0; i < count; i++)
        {
            //Тип
            var obstacleType = GetObstacleType(count);
            lastObstacle = obstacleType;

            GameObject usingPref = obstaclesSmall.GetRandom();
            switch (obstacleType)
            {
            case EnumObstacles.Small:
                usingPref = obstaclesSmall.GetRandom();
                break;

            case EnumObstacles.Horizontal:
                usingPref = obstaclesHorizontal.GetRandom();
                break;

            //case EnumObstacles.Vertical:
            //    usingPref = obstacleVertical;
            //    break;

            case EnumObstacles.Time:
                usingPref = obstacleTime;
                break;

            case EnumObstacles.Money:
                usingPref = obstacleMoney;
                break;

            case EnumObstacles.HP:
                usingPref = obstacleHP;
                break;
            }

            Instantiate(usingPref, GetObstaclePosition(), usingPref.transform.rotation, transform);
        }
    }