Example #1
0
    // Update is called once per frame
    void Update()
    {
        float loc_vel = (float)Math.Round(body.velocity.magnitude, 2);

        if (loc_vel != 0)
        {
            vel = loc_vel;
        }

        if (Input.GetButton("Vertical"))
        {
            if (Input.GetButton("Jump"))
            {
                gameObject.layer = 14;
            }
        }
        else
        {
            if (Input.GetButtonDown("Jump") && grounded && !is_jumped)
            {
                set_free();
                body.AddForce(new Vector2(0f, force));
                is_jumped = true;
            }
        }

        if (Input.GetButtonUp("Vertical") || Input.GetButtonUp("Jump"))
        {
            gameObject.layer = 10;
        }

        if (is_jumped)
        {
            jump_delay_timer -= Time.deltaTime;
            if (jump_delay_timer <= 0)
            {
                is_jumped        = false;
                jump_delay_timer = jump_delay;
            }
        }

        if (Input.GetButton("Sprint") && grounded)
        {
            speed = sprint_speed;
        }

        if (Input.GetButtonUp("Sprint") && grounded)
        {
            speed = defualt_speed;
        }

        if (Input.GetButton("Walk") && grounded)
        {
            speed = walk_speed;
        }

        if (Input.GetButtonUp("Walk") && grounded)
        {
            speed = defualt_speed;
        }

        if (hangedOn)
        {
            if (vertical < 0)
            {
                set_free();
            }
        }

        if (Input.GetMouseButtonUp(1))
        {
            if (grab.holding) //Вернуть  && !grab.crutch для второго клика для сброса захвата
            {
                grab.Stop();
            }
            grab.crutch         = false;
            grab.pullOnCoolDown = false;
        }

        if (Input.GetMouseButtonDown(0))
        {
            grab.Hlabysh();
        }
    }