// Start is called before the first frame update void Start() { Application.targetFrameRate = 60; enemySpawnerSpt = EnemyController.GetComponent <EnemySpawnerSpt>(); enemyMoveSpt = EnemyController.GetComponent <EnemyMoveSpt>(); //loading stuff goes here MapControllerSpt = MapController.GetComponent <MapController>(); MapControllerSpt.ListWaypoints(); //_prefab.lane = Enemy.Lane.Lateral; enemies = new List <Enemy>(); for (int i = 0; i < NumberOfEnemies; i++) { enemies.Add(_prefab); } StartCoroutine(enemySpawnerSpt.SpawnWave(enemies, 1)); Time.timeScale = timeScale; }
protected virtual void CollisionDetection() { for (int i = 0; i < _hopsPerFrame; i++) { if (DistanceFromTarget() > _activationDistance) { Vector3 trajictory = target.transform.position - transform.position; trajictory.Normalize(); transform.Translate(trajictory * _hopDistance, Space.World); } else { EnemyMoveSpt.GiveDamage(target, Damage); ProjectileEvents.OnHitEnemy.Invoke(this, target); Exploded = true; break; } } }
protected virtual void Shoot() { shootBehaviour.Shoot(target); canShoot = false; EnemyMoveSpt.GiveDamage(target, Damage); }
//new waypoint managment system start protected void RequestTarget() { Target = EnemyMoveSpt.GiveTarget(ref _tracker, _lane, this); //Debug.Log("new target is " + Target.position); }