예제 #1
0
    //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);
        }
    }
예제 #3
0
    /// <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;
    }
예제 #4
0
    // 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");
        }
    }
예제 #6
0
    //

    //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)
            }
        }
    }