Ejemplo n.º 1
0
    public void GetWalkingMode()
    {
        if (inputManager.RunButtonDown())
        {
            if ((inputManager.MainJoystick().x == 0 && inputManager.MainJoystick().z == 0) || !isGrounded)
            {
                return;
            }

            if (walkingMode == WalkingMode.crouching)
            {
                if (!DoesPlayerFit())
                {
                    return;
                }
            }

            if (walkingMode == WalkingMode.running)
            {
                SwitchWalkingMode(WalkingMode.walking);
            }
            else
            {
                if (isGrounded)
                {
                    SwitchWalkingMode(WalkingMode.running);
                    animDummy.SetTrigger("Run");
                    anim.SetTrigger("Run");
                }
            }
            return;
        }

        if (inputManager.CrouchButton())
        {
            if (walkingMode == WalkingMode.crouching)
            {
                //Testen ob Spieler aufstehen kann
                if (true)
                {
                    SwitchWalkingMode(WalkingMode.walking);
                    //  animDummy.SetTrigger("Walk");
                }
                else
                {
                    return;
                }
            }
            else
            {
                SwitchWalkingMode(WalkingMode.crouching);
            }
            return;
        }
        if ((inputManager.MainJoystick().x == 0) && (inputManager.MainJoystick().z == 0) && walkingMode != WalkingMode.crouching)
        {
            SwitchWalkingMode(WalkingMode.walking);
        }
    }
Ejemplo n.º 2
0
    void Update()
    {
        if (Time.timeScale != 0)
        {
            waveslice = 0.0f;
            if (player.isGrounded)
            {
                //float horizontal = Input.GetAxis ("Horizontal");
                //float vertical = Input.GetAxis ("Vertical");
                Vector3 input = inputManager.MainJoystick();



                if (Mathf.Abs(input.x) == 0 && Mathf.Abs(input.z) == 0)
                {
                    timer = 0.0f;
                }
                else
                {
                    if (player.walkingMode == Character.WalkingMode.walking)
                    {
                        timer = timer + walkBobbingSpeed * Time.deltaTime * 125f;
                    }
                    else if (player.walkingMode == Character.WalkingMode.running)
                    {
                        timer = timer + runBobbingSpeed * Time.deltaTime * 125f;
                    }
                    else if (player.walkingMode == Character.WalkingMode.crouching)
                    {
                        timer = timer + crouchBobbingSpeed * Time.deltaTime * 125f;
                    }



                    if (timer > Mathf.PI * 2)
                    {
                        timer = timer - (Mathf.PI * 2);
                    }
                    //Debug.Log ("Timer: " + timer);
                    waveslice = Mathf.Sin(timer);
                    //Debug.Log ("Waveslice: " + waveslice);
                }
                if (waveslice != 0)
                {
                    float translateChange = 0f;
                    if (player.walkingMode == Character.WalkingMode.walking)
                    {
                        translateChange = waveslice * walkBobbingAmount;
                    }
                    else if (player.walkingMode == Character.WalkingMode.running)
                    {
                        translateChange = waveslice * runBobbingAmount;
                    }
                    else if (player.walkingMode == Character.WalkingMode.crouching)
                    {
                        translateChange = waveslice * crouchBobbingAmount;
                    }


                    float totalAxes = Mathf.Abs(input.x) + Mathf.Abs(input.z);
                    totalAxes       = Mathf.Clamp(totalAxes, 0.0f, 1.0f);
                    translateChange = totalAxes * translateChange;
                    bobs.y          = midpoint + translateChange;
                }
                else
                {
                    bobs.y = midpoint;
                }
                if (waveslice < -0.95 && !playedFootstep)
                {
                    if (player.walkingMode != Character.WalkingMode.crouching)
                    {
                        //FMODUnity.RuntimeManager.PlayOneShotAttached (player.FootstepsEvent, this.transform.gameObject);
                        audioSource.PlayOneShot(footsteps[Random.Range(0, footsteps.Length - 1)], 0.4f);
                        playedFootstep = true;
                    }
                    else
                    {
                        //FMODUnity.RuntimeManager.PlayOneShotAttached (player.CrouchingFootstepsEvent, this.transform.gameObject);
                        audioSource.PlayOneShot(footsteps[Random.Range(0, footsteps.Length - 1)], 0.4f);
                        playedFootstep = true;
                    }
                }
                if (waveslice > 0.5)
                {
                    playedFootstep = false;
                }
                transform.localPosition = bobs;
            }
            else
            {
                timer     = 0.0f;
                waveslice = 0.0f;
            }

            Vector3 parentPos = transform.parent.gameObject.transform.localPosition;
            if (player.walkingMode == Character.WalkingMode.walking || player.walkingMode == Character.WalkingMode.running)
            {
                if (parentPos.y < standHeight)
                {
                    parentPos.y += 0.05f * Time.deltaTime * changeSpeed * (standHeight - parentPos.y);
                }
                parentPos.y = Mathf.Clamp(parentPos.y, 0, standHeight);
            }
            else if (player.walkingMode == Character.WalkingMode.crouching)
            {
                if (parentPos.y > crouchHeight)
                {
                    parentPos.y -= 0.05f * Time.deltaTime * changeSpeed * (parentPos.y - crouchHeight);
                }
                parentPos.y = Mathf.Clamp(parentPos.y, crouchHeight, Mathf.Infinity);
            }
            transform.parent.gameObject.transform.localPosition = parentPos;
        }
    }