Ejemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (charState.IsIdleOrRunning() && !charController.enabled)
        {
            charController.enabled = true;
        }

        if (charState.IsIdle() && animator.GetBool(anim_wallClimbHash))
        {
            animator.SetBool(anim_wallClimbHash, false);
        }

        if (charState.IsFalling() && !rb.useGravity)
        {
            rb.useGravity = true;
        }
    }
    private void Jump(GameEvent gameEvent)
    {
        if (gameEvent == GameEvent.Jump && charState.IsIdleOrMoving())
        {
            animator.SetBool("WallBounce", false);

            EventManager.OnCharEvent(GameEvent.Jump);
            InputController.jumpReleased = false;

            //jumpTime = Time.time;

            // Change the forward speed based on what kind of jump it is
            if (charState.IsIdle())
            {
                animator.SetTrigger(anim_idleJump);
            }

            else if (charState.IsRunning())
            {
                animator.SetTrigger(anim_runningJump);
            }

            else if (charState.IsSprinting())
            {
                animator.SetBool(anim_sprintJump, true);
                RSUtil.OrientCapsuleCollider(cCollider, false);
                //Debug.Break();
            }
        }

        //print (gameEvent);
        else if (gameEvent == GameEvent.Jump && charState.IsIdleOrRunningJumping() && !hasDoubleJumped)
        {
            animator.SetTrigger(anim_doubleJump);
        }
    }