void ShootBeam() { float spreadIncrement = (m_spreadFactor * 2) / m_shotsPerFire; for (int i = 0; i < m_shotsPerFire; i++) { float randAngle; if (m_evenSpread) { randAngle = -m_spreadFactor + (spreadIncrement * i); } else { randAngle = Random.Range(-m_spreadFactor, m_spreadFactor + 1.0f); } if (!isBeaming && currentBeams[i] == null) { Quaternion bulletRot = this.transform.rotation * Quaternion.Euler(0, 0, -randAngle); //Quaternion bulletRot = this.transform.rotation; GameObject bullet = (GameObject)Network.Instantiate(m_bulletRef, this.transform.position, bulletRot, 0); bullet.transform.parent = this.transform; bullet.transform.localScale = new Vector3(bullet.transform.localScale.x, 0f, bullet.transform.localScale.z); bullet.GetComponent <BeamBulletScript>().SetOffset(m_bulletOffset); bullet.GetComponent <BeamBulletScript>().firer = transform.gameObject; GameStateController gsc = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameStateController>(); bullet.GetComponent <BeamBulletScript>().ParentBeamToFirer(gsc.GetNameFromNetworkPlayer(transform.parent.GetComponent <PlayerControlScript>().GetOwner())); currentBeams[i] = bullet; if (i >= (m_shotsPerFire - 1)) { isBeaming = true; } networkView.RPC("PlaySoundOverNetwork", RPCMode.All); } } }