public void GunUpdate(float dt) { if (gunHeat <= 0 && activated) { if (gunTarget == null || Vector3.Distance(gunTarget.transform.position, transform.position) > gunRange) { EnemyMoter enemy = EnemyManager.Instance.getClosestEnemy(transform.position); if (enemy != null && Vector3.Distance(enemy.transform.position, transform.position) <= gunRange) { gunTarget = enemy; } else { gunTarget = null; } } if (gunTarget != null && BaseManager.Instance.Energy >= shotEnergyCost) { gunTarget.TakeDamage(damage); BaseManager.Instance.DrainEnergy(shotEnergyCost); gunHeat = gunCooldown; shotRenderer.SetPosition(1, gunTarget.transform.position); shotRenderer.enabled = true; CancelInvoke(); Invoke("ShutoffShotRenderer", shotRenderTime); } } else if (gunHeat > 0) { gunHeat -= dt; } }
void SpawnEnemy() { GameObject enemy = Instantiate(enemyPrefab, spawnPoint.transform.position, spawnPoint.transform.rotation); // enemy.transform.position = spawnPoint.position; EnemyMoter script = enemy.GetComponent <EnemyMoter>(); EnemyManager.Instance.enemies.Add(script); }
public EnemyMoter getClosestEnemy(Vector3 pos) { EnemyMoter ret = null; float minDist = float.MaxValue; float thisDist; foreach (EnemyMoter enemy in enemies) { thisDist = Vector3.Distance(enemy.transform.position, pos); if (thisDist < minDist) { ret = enemy; minDist = thisDist; } } return(ret); }