Exemple #1
0
    public void Moving()
    {
        //Debug.Log(player.forward);
        Vector3 forward = player.forward * movement.z; //двигаемся вперед/назад относительно того куда смотрит игрок
        Vector3 right   = player.right * movement.x;   //двигаемся влево/вправо относительно того куда смотрит игрок

        if (!GlobalInfo.CheckWallRun())
        {
            if (GlobalInfo.CheckGround())
            {
                body.MovePosition(body.position + forward * speed * Time.fixedDeltaTime);//осуществялем передвижение вперед/назад
            }
            else
            {
                body.MovePosition(body.position + forward * speedMove / 2 * Time.fixedDeltaTime);//осуществялем передвижение вперед/назад
            }
            //Debug.Log("Move");
        }
        else
        {
            jumps = 0;
        }
        if (GlobalInfo.CheckGround())
        {
            body.MovePosition(body.position + right * speed * Time.fixedDeltaTime);//осуществялем передвижение влево/вправо
        }
        else
        {
            body.MovePosition(body.position + right * speedMove / 2 * Time.fixedDeltaTime);//осуществялем передвижение влево/вправо
        }
    }
Exemple #2
0
    //функция прыжка
    void Jump()
    {
        Vector3 vec = new Vector3(0, jumpForce, 0);

        if (Input.GetAxisRaw("Vertical") > 0)
        {
            vec.x = player.forward.x * speedMove / 2;
            vec.z = player.forward.z * speedMove / 2;
        }
        else
        {
            if (Input.GetAxisRaw("Vertical") != 0)
            {
                vec.x = -player.forward.x * speedMove / 2;
                vec.z = -player.forward.z * speedMove / 2;
            }
        }
        if (Input.GetAxisRaw("Horizontal") > 0)
        {
            vec.x = (vec.x + player.right.x * speedMove / 2) / 2;
            vec.z = (vec.z + player.right.z * speedMove / 2) / 2;
        }
        else
        {
            if (Input.GetAxisRaw("Horizontal") != 0)
            {
                vec.x = (vec.x + (-player.right.x * speedMove / 2)) / 2;
                vec.z = (vec.z + (-player.right.z * speedMove / 2)) / 2;
            }
        }
        if (Input.GetKeyDown(KeyCode.Space) && (GlobalInfo.CheckGround() && !GlobalInfo.CheckWallRun()))//если нажали пробел и на земле
        {
            Debug.Log("Kick");
            body.velocity = vec;//пинаем вверх
            audio.Play("Jump");
        }
        else
        {
            if (Input.GetKeyDown(KeyCode.Space) && jumps != nJumps && !GlobalInfo.CheckWallRun())
            {
                body.velocity = vec;//пинаем вверх
                audio.Play("Jump" + jumps);
                jumps++;
            }
        }
    }