// 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]); } }
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); }
/// <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; } }