コード例 #1
0
    /// <summary>
    /// Creates enemy of enemyType in position. Ignores all restrictions.
    /// </summary>
    /// <param name="enemyType"></param>
    /// <param name="number"></param>
    //TODO: метод с очень сильными связями. Подумать как ослабить.
    public void ForceCreate(EnemyType enemyType, Vector3 position)
    {
        GameObject enemy = FactoryList.Get(enemyType).Create(position);

        enemy.GetComponent <DebrisCreator>()?.SetEnemyCreator(this);
        //Добавить врага в трекер.
        EnemyTracker?.Add(enemy);
        EnemyCreated?.Invoke(enemy);
    }
コード例 #2
0
    //Создает одного врага на основе процентных шансов переданного в параметре массива.
    private void SpawnSingle(int[] spawnChances)
    {
        int chance = UnityEngine.Random.Range(1, 101);

        for (int i = 0; i < spawnChances.Length; i++)
        {
            if (chance < spawnChances[i])
            {
                if (IsSpawnAllowed(i))
                {
                    GameObject enemy = EnemyFactories[i].Create();
                    enemy.GetComponent <DebrisCreator>()?.SetEnemyCreator(this);
                    //Добавить врага в трекер.
                    EnemyTracker?.Add(enemy);
                    EnemyCreated?.Invoke(enemy);
                    return;
                }
            }
        }
    }