void SpawnDetection() { targetDistance = Vector3.Distance(playerTarget.transform.position, transform.position); if (targetDistance > spawnDistance && !startSpawn) { SpawnSquadron(); } if (startSpawn) { if (unspawnedEnemies > 0 && Time.time > nextSpawnTime) { nextSpawnTime = Time.time + squadron.spawnDelay; EnemyControllerNavTest spawnedEnemy = Instantiate(enemy, transform.position, Quaternion.identity) as EnemyControllerNavTest; enemies[squadron.enemyCount - unspawnedEnemies] = spawnedEnemy.gameObject; PatrolNavMesh enemyPatrol = spawnedEnemy.GetComponent <PatrolNavMesh>(); enemyPatrol.spawner = this; enemyPatrol.patrolBoundsMin = patrolBoundsMin; enemyPatrol.patrolBoundsMax = patrolBoundsMax; spawnedEnemy.OnDeath += OnEnemyDeath; unspawnedEnemies--; } } }
protected override void Start() { base.Start(); player = GameObject.FindWithTag("Player").GetComponent <PlayerController>(); playerRB = player.GetComponent <Rigidbody>(); movingEntity = GetComponent <MovingEntity>(); playerTarget = GameObject.FindGameObjectWithTag("Player"); pathfinder = GetComponent <NavMeshAgent>(); material = gameObject.GetComponentInChildren <Renderer>().material; weaponSystems = GetComponent <WeaponSystems>(); steeringBasics = GetComponent <SteeringBasics>(); pursue = GetComponent <Pursue>(); evade = GetComponent <Evade>(); patrol = GetComponent <PatrolNavMesh>(); shader1 = Shader.Find("Diffuse"); shader2 = Shader.Find("Transparent/Diffuse"); shotTimer = maxShotTime; secondShotTimer = maxSecondShotTime; enemyState = EnemyState.PATROL; }