private IEnumerator AttackRoutine() { //For trail renderer if (player.inControl) { unCorruptedTrail.enabled = true; } else { corruptedTrail.enabled = true; } canShoot = false; weaponAnim.SetTrigger("Attack"); //ammoEmitter.localEulerAngles = new Vector3(0f, 0f, Random.Range(-50f, 50f)); ProjectileScript ammo = Instantiate(bullet, ammoEmitter.position, ammoEmitter.localRotation).GetComponent <ProjectileScript>(); ammo.Setup(ammoEmitter.up, GetMouseAngle, bulletSpeed); audioManager.RandomizeSfx(shootSfx); yield return(new WaitForSeconds(fireRate)); canShoot = true; //For trail renderer if (player.inControl) { unCorruptedTrail.enabled = false; } else { corruptedTrail.enabled = false; } }
private void FireProjectile() { if (_CurrentState == EnemyState.FIRE || _CurrentState == EnemyState.FIREANDMOVE) { ProjectileScript PSTemp = Instantiate(PS, this.transform.position, PS.transform.rotation); PSTemp.Setup(HelperScript.PlayerRef.transform.position, this.transform.rotation.eulerAngles + new Vector3(90, 0, 0), "", true, null); } Invoke("FireProjectile", _FireRate); }
// Update is called once per frame void Update() { if (fireRate <= 0) { ProjectileScript projectileScript = Instantiate(projectile, projectileSpawner.position, Quaternion.identity).GetComponent <ProjectileScript>(); projectileScript.Setup(gameObject.transform.localScale.x); fireRate = maxFireRate; } else { fireRate -= Time.deltaTime; } }
void Update() { _MousePos = Camera.main.ScreenPointToRay(Input.mousePosition).GetPoint(Camera.main.transform.position.y); this.transform.LookAt(_MousePos, this.transform.up); this.transform.rotation = Quaternion.Euler(new Vector3(-90, this.transform.rotation.eulerAngles.y + 180)); if (Input.GetMouseButtonDown(0)) { ProjectileScript PSTemp = Instantiate(PSSlot1, (LeftGunFire?FLGun:FRGun).position, PSSlot1.transform.rotation); LeftGunFire = !LeftGunFire; PSTemp.Setup(_MousePos, this.transform.rotation.eulerAngles, "", false, null); } if (Input.GetMouseButtonDown(1) && !_SecondFireDelay) { ProjectileScript PSTemp = Instantiate(PSSlot2, this.transform.position, Quaternion.Euler(new Vector3(0, 180, 0))); PSTemp.Setup(_MousePos, this.transform.rotation.eulerAngles + new Vector3(90, 0, 0), "Missile1", false, DelayCoolback); _SecondFireDelay = true; } }