using UnityEngine; using System.Collections; public class EnemyFireScript : MonoBehaviour { public float FireRate = 1f; float fireCounter; bool PlayerInRange = false; bool IsBulletTopDown = true; public GameObject Bullet; public float BulletSpeed ; AudioSource EnemyFireAudio; void Start () { EnemyFireAudio = GameObject.FindGameObjectWithTag("EnemyFireAudio").GetComponent(); } void Update () { fireCounter += Time.deltaTime; if (fireCounter >= FireRate && PlayerInRange) { fireCounter = 0; EnemyFireAudio.Play(); if (IsBulletTopDown) { Fire1(); } else { Fire2(); } IsBulletTopDown = !IsBulletTopDown; } } void Fire1() { var Bullet1 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet1.GetComponent().velocity = Vector2.up * BulletSpeed; var Bullet2 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet2.GetComponent().velocity = Vector2.right * BulletSpeed; var Bullet3 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet3.GetComponent().velocity = Vector2.down * BulletSpeed; var Bullet4 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet4.GetComponent().velocity = Vector2.left * BulletSpeed; Destroy(Bullet1, 1.5f); Destroy(Bullet2, 1.5f); Destroy(Bullet3, 1.5f); Destroy(Bullet4, 1.5f); } void Fire2() { var Bullet1 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet1.GetComponent().velocity = new Vector2(1,1) * BulletSpeed; var Bullet2 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet2.GetComponent().velocity = new Vector2(-1, 1) * BulletSpeed; var Bullet3 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet3.GetComponent().velocity = new Vector2(-1, -1) * BulletSpeed; var Bullet4 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; Bullet4.GetComponent().velocity = new Vector2(1, -1) * BulletSpeed; Destroy(Bullet1, 1.5f); Destroy(Bullet2, 1.5f); Destroy(Bullet3, 1.5f); Destroy(Bullet4, 1.5f); } void OnTriggerEnter2D(Collider2D other) { var player = other.gameObject.GetComponentInParent(); if (player != null) { PlayerInRange = true; } } void OnTriggerExit2D(Collider2D other) { var player = other.gameObject.GetComponentInParent(); if (player != null) { PlayerInRange = false; } } }