//SWITCH BETWEEN FIRST PERSON AND THIRD PERSON CAMERA VIEW public void SwitchCameraPerspective(PlayerCameraView view) { if (playerMovement.movementType.Equals(MovementType.BumperCar)) { playerMovement.PlayerEvents_ChangeMovementType(photonView.owner.ID, MovementType.Player); } //GetComponent<PlayerObjectComponents>().PlayerCamera.GetComponent<Camera>().cullingMask ^= 1 << LayerMask.NameToLayer("Player"); stateInt_3rdPersonUpperBody = -1; stateInt_3rdPersonLowerBody = -1; stateBool_3rdPersonJump = !stateBool_3rdPersonJump; stateInt_1stPersonArms = -1; if (view.Equals(PlayerCameraView.FirstPerson)) { GetComponent <PlayerObjectComponents>().CameraConatiner.GetComponent <CameraCollision>().RestDollyPosition(); GetComponent <PlayerObjectComponents>().PlayerCamera.GetComponent <Camera>().cullingMask &= ~(1 << LayerMask.NameToLayer("Player")); playerCameraView = PlayerCameraView.FirstPerson; GetComponent <PlayerObjectComponents>().ThirdPersonPlayer.SetActive(false); GetComponent <PlayerObjectComponents>().FirstPersonPlayer.SetActive(true); } else if (view.Equals(PlayerCameraView.ThirdPerson)) { GetComponent <PlayerObjectComponents>().CameraConatiner.GetComponent <CameraCollision>().RestDollyPosition(); GetComponent <PlayerObjectComponents>().PlayerCamera.GetComponent <Camera>().cullingMask |= 1 << LayerMask.NameToLayer("Player"); playerCameraView = PlayerCameraView.ThirdPerson; GetComponent <PlayerObjectComponents>().ThirdPersonPlayer.SetActive(true); GetComponent <PlayerObjectComponents>().FirstPersonPlayer.SetActive(false); } }
/// <summary> /// Switch between First Person and Third Person camera view /// </summary> private void SwitchCameraPerspective(PlayerCameraView view) { //GetComponent<PlayerObjectComponents>().PlayerCamera.GetComponent<Camera>().cullingMask ^= 1 << LayerMask.NameToLayer("Player"); AnimLocal_INT_UpperBody = -1; AnimLocal_INT_LowerBody = -1; AnimLocal_BOOL_Jump = !AnimLocal_BOOL_Jump; AnimLocal_INT_Arms = -1; if (view.Equals(PlayerCameraView.FirstPerson)) { GetComponent <PlayerObjectComponents>().CameraConatiner.GetComponent <CameraCollision>().RestDollyPosition(); GetComponent <PlayerObjectComponents>().PlayerCamera.GetComponent <Camera>().cullingMask &= ~(1 << LayerMask.NameToLayer("Player")); playerCameraView = PlayerCameraView.FirstPerson; GetComponent <PlayerObjectComponents>().ThirdPersonPlayer.SetActive(false); GetComponent <PlayerObjectComponents>().FirstPersonPlayer.SetActive(true); } else if (view.Equals(PlayerCameraView.ThirdPerson)) { GetComponent <PlayerObjectComponents>().CameraConatiner.GetComponent <CameraCollision>().RestDollyPosition(); GetComponent <PlayerObjectComponents>().PlayerCamera.GetComponent <Camera>().cullingMask |= 1 << LayerMask.NameToLayer("Player"); playerCameraView = PlayerCameraView.ThirdPerson; GetComponent <PlayerObjectComponents>().ThirdPersonPlayer.SetActive(true); GetComponent <PlayerObjectComponents>().FirstPersonPlayer.SetActive(false); } }
/// <summary> /// NETWORKED COROUTINE: Respawn Player /// </summary> /// <param name="photonOwnerID"></param> /// <param name="respawnPlayerName"></param> /// <param name="killedByPlayerName"></param> /// <returns></returns> IEnumerator RespawnPlayer(int photonOwnerID, string respawnPlayerName, string killedByPlayerName) { if (photonOwnerID == photonView.ownerId) { transform.GetComponent <PlayerShooting>().isRespawnPlayer = true; EventManager.Instance.UpdateStat(respawnPlayerName, PlayerStatCodes.Deaths, 1); if (killedByPlayerName != string.Empty) { EventManager.Instance.UpdateStat(killedByPlayerName, PlayerStatCodes.Kills, 1); } transform.GetComponent <PlayerShooting>().enabled = false; PlayerCameraView originalPlayerCamerView = GetComponent <PlayerAnimation>().playerCameraView; yield return(new WaitForSeconds(2f)); float randomValue = Random.Range(-30f, 30f); transform.position = new Vector3(randomValue, 120, randomValue); transform.rotation = Quaternion.identity; EventManager.Instance.SetStat(respawnPlayerName, PlayerStatCodes.Health, 100); yield return(new WaitForSeconds(2f)); transform.GetComponent <PlayerShooting>().enabled = true; transform.GetComponent <PlayerShooting>().isRespawnPlayer = false; } RespawnPlayerCoroutine = null; yield break; }
// Use this for initialization void Start() { playerCameraView = PlayerCameraView.FirstPerson; if (playerMovement.movementType.Equals(MovementType.Player)) { Param_3rdPersonLowerBody = Animator.StringToHash("Param_3rdPersonLowerBody"); Param_3rdPersonUpperBody = Animator.StringToHash("Param_3rdPersonUpperBody"); Param_3rdPerson_AimAngle = Animator.StringToHash("Param_3rdPerson_AimAngle"); JumpBool = Animator.StringToHash("JumpBool"); DeathBool = Animator.StringToHash("DeathBool"); Param_1stPersonUpperBody_AR = Animator.StringToHash("Param_1stPersonUpperBody_AR"); } }
private void Start() { NetworkPlayerMovement = GetComponent <NetworkPlayerMovement>(); PlayerMovement = GetComponent <PlayerMovement>(); PlayerShooting = GetComponent <PlayerShooting>(); PlayerMouseLook = GetComponent <PlayerObjectComponents>().PlayerCamera.GetComponent <MouseLook>(); Animator_1stPerson = GetComponent <PlayerObjectComponents>().animator1; Animator_3rdPerson = GetComponent <PlayerObjectComponents>().animator3; PhotonView = GetComponent <PhotonView>(); PlayerCamera = GetComponent <PlayerObjectComponents>().PlayerCamera.GetComponent <Camera>(); DeathCamera = GetComponent <PlayerObjectComponents>().DeathCamera.GetComponent <Camera>(); playerCameraView = PlayerCameraView.FirstPerson; if (PlayerMovement.MovementType.Equals(MovementType.Player)) { Param_3rdPersonLowerBody = Animator.StringToHash("Param_3rdPersonLowerBody"); Param_3rdPersonUpperBody = Animator.StringToHash("Param_3rdPersonUpperBody"); Param_3rdPerson_AimAngle = Animator.StringToHash("Param_3rdPerson_AimAngle"); Param_JumpBool = Animator.StringToHash("JumpBool"); Param_DeathBool = Animator.StringToHash("DeathBool"); Param_1stPersonUpperBody_AR = Animator.StringToHash("Param_1stPersonUpperBody_AR"); } }
// //1ST PERSON ANIMATION void AnimationUpdate_1stPerson() { //PLAYER IS ALIVE if (EventManager.Instance.GetScore(photonView.owner.NickName, PlayerStatCodes.Health) > 0) { SetStateFloat_3rdPersonAimAngle(mouseLook.GetCameraRotationY() / 90); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) //1) SET DEATHBOOL TO FALSE (SET BOTH 1ST AND 3RD PERSON - AND AFFECTS WHOLE BODY) if (stateBool_3rdPersonDeath) { DeathCamera.enabled = false; PlayerCamera.enabled = true; if (originalPlayerCamerView.Equals(PlayerCameraView.FirstPerson)) { GetComponent <PlayerAnimation>().SwitchCameraPerspective(PlayerCameraView.FirstPerson); } stateBool_3rdPersonDeath = false; SetStateBool_3rdPersonDeath(stateBool_3rdPersonDeath); } //SHOOTING (UPPER BODY) if (playerShooting.isFiringBullet) { armPriorityAnimation = true; if (playerShooting.isAiming) { //AIM FIRE UPPER BODY if (stateInt_1stPersonArms != 3) { stateInt_1stPersonArms = 3; stateInt_3rdPersonUpperBody = 3; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local AR AimFire SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonUpperBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } else { //FIRE UPPER BODY if (stateInt_1stPersonArms != 2) { stateInt_1stPersonArms = 2; stateInt_3rdPersonUpperBody = 2; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local AR Fire SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonUpperBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } } else if (playerShooting.isAiming) { armPriorityAnimation = true; if (playerShooting.isFiringBullet) { if (stateInt_1stPersonArms != 2) { stateInt_1stPersonArms = 2; stateInt_3rdPersonUpperBody = 2; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local AR Fire SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonUpperBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } else { //AIM UPPER BODY if (stateInt_1stPersonArms != 1) { stateInt_1stPersonArms = 1; stateInt_3rdPersonUpperBody = 1; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local AR Aim SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonUpperBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } } else if (!playerShooting.isAiming && !playerShooting.isFiringBullet) { //IDLE UPPER BODY (NOT SHOOTING) if (!armPriorityAnimation) { stateInt_1stPersonArms = 0; stateInt_3rdPersonUpperBody = 0; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local Arms Idle SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonUpperBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } armPriorityAnimation = false; } //MOVEMENT (WHOLE BODY) if (playerMovement.floorDetected) { //JUMP if (stateBool_3rdPersonJump != false) { stateBool_3rdPersonJump = false; SetStateBool_3rdPersonJump(stateBool_3rdPersonJump); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } if (playerMovement.playerVelocity.magnitude > 15) { //RUNNING LOWER BODY if (stateInt_3rdPersonLowerBody != 1) { stateInt_3rdPersonLowerBody = 1; SetStateInt_3rdPersonLowerBody(stateInt_3rdPersonLowerBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } //RUNNING UPPER BODY if (stateInt_1stPersonArms != 5 && !armPriorityAnimation) { stateInt_1stPersonArms = 5; stateInt_3rdPersonUpperBody = 5; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local Arms Run SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonUpperBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } else if (playerMovement.playerVelocity.magnitude <= 15 && playerMovement.playerVelocity.magnitude > 0) { //WALKING LOWER BODY if (stateInt_3rdPersonLowerBody != 1) { stateInt_3rdPersonLowerBody = 1; SetStateInt_3rdPersonLowerBody(stateInt_3rdPersonLowerBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } //WALKING UPPER BODY if (stateInt_1stPersonArms != 4 && !armPriorityAnimation) { stateInt_1stPersonArms = 4; stateInt_3rdPersonLowerBody = 4; SetStateInt_1stPersonArms(stateInt_1stPersonArms); //Local Arms Walk SetStateInt_3rdPersonUpperBody(stateInt_3rdPersonLowerBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } else { //IDLE LOWER BODY (HANDLED IN MOVEMENT/JUMP BECAUSE WANT JUMP ANIMATION TO TAKE PRIORITY) if (stateInt_3rdPersonLowerBody != 0) { stateInt_3rdPersonLowerBody = 0; SetStateInt_3rdPersonLowerBody(stateInt_3rdPersonLowerBody); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } } else { //JUMPING (SET BOTH 1ST AND 3RD PERSON - AND AFFECTS WHOLE BODY) if (stateBool_3rdPersonJump != true) { stateBool_3rdPersonJump = true; SetStateBool_3rdPersonJump(stateBool_3rdPersonJump); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } } else { //DEATH ANIMATION: LESS THAN OR EQUAL TO 0 HP if (!stateBool_3rdPersonDeath) { originalPlayerCamerView = playerCameraView; if (originalPlayerCamerView.Equals(PlayerCameraView.FirstPerson)) { GetComponent <PlayerAnimation>().SwitchCameraPerspective(PlayerCameraView.ThirdPerson); } DeathCamera.enabled = true; PlayerCamera.enabled = false; stateBool_3rdPersonDeath = true; SetStateBool_3rdPersonDeath(stateBool_3rdPersonDeath); SetStateFloat_3rdPersonAimAngle(0); ///TO SHOW THE ANIMATION (OPTIONAL - FOR DEBUGGING) } } }