Esempio n. 1
0
    // Use this for initialization
    void Start()
    {
        Instance = this;
        giv      = FindObjectOfType <GiveEnemy>();
        var en = this.GetComponentsInChildren <Enemy>();

        for (int i = 0; i < en.Length; i++)
        {
            enemys.Add(en[i]);
        }
    }
Esempio n. 2
0
    void Start()
    {
        root = new Sequencer();
        Node selector       = new Selector();
        Node getEnemy       = new GetEnemy();
        Node dontFindPath   = new DontFindPath();
        Node findPath       = new FindPath();
        Node chaseAndAttack = new ChaseAndAttack();

        root.children.Add(getEnemy);
        root.children.Add(selector);
        root.children.Add(chaseAndAttack);
        selector.children.Add(dontFindPath);
        selector.children.Add(findPath);
    }
Esempio n. 3
0
    /// <summary>
    /// Корутина для создания новой "волны" атаки противников на героя
    /// </summary>
    /// <param name="count">Количество врагов</param>
    /// <param name="enemyLevel">Уровень врагов</param>
    /// <returns></returns>
    IEnumerator SpawnNewEnemies(int count, int enemyLevel = 4)
    {
        for (int i = 0; i < count; i++)
        {
            yield return(new WaitForSeconds(Random.Range(1.5f, 4)));

            var AbsEnemy = GetEnemy.GetComponent <AbstractEnemy>();
            AbsEnemy.agent.SetDestination(Player.instance.transform.position);
            AbsEnemy.Level = enemyLevel;
            Vector3 position;
            do
            {
                position = _spawnPositions[Random.Range(0, _spawnPositions.Length)].position;
            } while (Vector3.Distance(Player.instance.transform.position, position) < _spawnRadius);
            AbsEnemy.transform.position = position;
        }
    }