Example #1
0
    // Update is called once per frame
    void Update()
    {
        shakeEffect.Update();
        UpdateInput();

        Vector3 velocity = new Vector3(pi.horizontal, 0, 0) * moveSpeed * Time.deltaTime;

        // horizontal movement
        RaycastHit2D hit = Physics2D.Raycast(transform.position, velocity, velocity.magnitude + transform.localScale.x / 2.0f, wallLayer);

        if (hit.collider == null)
        {
            transform.Translate(velocity, Space.World);
        }
        //rb.AddForce(velocity, ForceMode2D.Impulse);

        // check if grounded
        isGrounded = rb.IsTouchingLayers(groundLayer);

        if (isGrounded)
        {
            jumpImpusles = 0;
            if (pi.isJumpDown)
            {
                isReleasedJump = false;
                rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
                Toolbox.Instance.SfxMan.PlaySoundWithPitch("Jump", 0.9f, 1.1f, 0.05f);
            }
        }
        else
        {
            // check if the player releases the jump button
            if (pi.isJumpUp)
            {
                isReleasedJump = true;
            }

            if (isReleasedJump == false && pi.isJumping)
            {
                ++jumpImpusles;
                if (jumpImpusles == secondJumpImpusle)
                {
                    //LeanTween.rotateAroundLocal(gameObject, Vector3.forward, 360.0f, 1.0f);
                    anim.SetTrigger("backflip");
                    rb.AddForce(Vector2.up * secJumpForce, ForceMode2D.Impulse);
                }
            }
        }

        // clamp velocity
        //rb.velocity = Vector2.ClampMagnitude(rb.velocity, 5.0f);
    }
 public void Update()
 {
     shakeEffect.Update();
     camMod.Update();
     UpdateTextDisplay();
 }