void Shoot() { GunState gunState = gunParent.GetChild(inGameManager.currentWeaponIndex).GetComponent <GunState>(); gunState.bulletSound(); Transform eyeCam = transform.Find("Cameras/Main Player Cam"); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(eyeCam.position, eyeCam.forward, out hit, 1000f, enemyLayer)) { GameObject newHole = Instantiate(bulletHolePrefab, hit.point + hit.normal * 0.001f, Quaternion.identity); newHole.transform.LookAt(hit.point + hit.normal); Destroy(newHole, 5f); if (photonView.IsMine && hit.collider.gameObject.layer == 11) { Gun gun = inGameManager.GetCurrentEquipment() as Gun; if (gun == null) { Debug.Log("BAD"); return; } GameObject enemy; if (hit.collider.gameObject.transform.parent) { enemy = hit.collider.gameObject.transform.parent.gameObject; } else { enemy = hit.collider.gameObject; } this.GetComponent <FaceoffPlayerHUD>().hitCrossHair(); enemy.GetPhotonView().RPC("TakeDamage", RpcTarget.All, (int)gun.baseDamage, PhotonNetwork.LocalPlayer.ActorNumber); } } if (photonView.IsMine) { gunState = gunParent.GetChild(inGameManager.currentWeaponIndex).GetComponent <GunState>(); gunState.ammoCount--; pHud.AmmoChanged(gunState.ammoCount, gunState.baseAmmo); } }
void Shoot() { Gun gun = inGameManager.getCurrentEquipment() as Gun; if (gun == null) { Debug.Log("BAD"); return; } GunState gunState = gunParent.GetChild(inGameManager.currentWeaponIndex).GetComponent <GunState>(); gunState.bulletSound(); Transform eyeCam = transform.Find("Cameras/Main Player Cam"); if (gun.isShotgun) { for (int i = 0; i < gun.pelletCount; i++) { var rad = Random.Range(0, 360f) * Mathf.Deg2Rad; var spreadX = Random.Range(0.0f, 0.1f) * Mathf.Cos(rad); var spreadY = Random.Range(0.0f, 0.1f) * Mathf.Sin(rad); var deviation = new Vector3(spreadX, spreadY, 0); var dir = deviation + eyeCam.forward; Debug.DrawRay(eyeCam.position, dir * gun.range, Color.blue, 5); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(eyeCam.position, dir, out hit, gun.range, enemyLayer)) { if (photonView.IsMine && hit.collider.gameObject.layer == 11) { GameObject enemy; if (hit.collider.gameObject.transform.parent) { enemy = hit.collider.transform.root.gameObject; } else { enemy = hit.collider.gameObject; } this.GetComponent <PlayerHUD>().hitCrossHair(); if (enemy.tag == "Shambler") { enemy.GetPhotonView().RPC("TakeDamageShambler", RpcTarget.All, (int)gun.baseDamage, photonView.ViewID); } else { enemy.GetPhotonView().RPC("TakeDamage", RpcTarget.All, (int)gun.baseDamage); } } } } } else { RaycastHit hit = new RaycastHit(); if (Physics.Raycast(eyeCam.position, eyeCam.forward, out hit, 1000f, enemyLayer)) { if (photonView.IsMine && hit.collider.gameObject.layer == 11) { GameObject enemy; if (hit.collider.gameObject.transform.parent) { enemy = hit.collider.transform.root.gameObject; } else { enemy = hit.collider.gameObject; } this.GetComponent <PlayerHUD>().hitCrossHair(); if (enemy.tag == "Shambler") { enemy.GetPhotonView().RPC("TakeDamageShambler", RpcTarget.All, (int)gun.baseDamage, photonView.ViewID); } else { enemy.GetPhotonView().RPC("TakeDamage", RpcTarget.All, (int)gun.baseDamage); } } } } if (photonView.IsMine) { gunState = gunParent.GetChild(inGameManager.currentWeaponIndex).GetComponent <GunState>(); gunState.ammoCount--; pHud.AmmoChanged(gunState.ammoCount, gunState.baseAmmo); } }