Перемещение персонажа по оси камеры с помощью джойстика [Unity]

Недавно я начал практиковаться с Unity3D и создал своего рода камеру, которая медленно отстает от игрока в направлении, в котором они движутся. Мое намерение состоит в том, чтобы движение игроков основывалось на направлении, с которым сталкивается камера, а не на движение персонажей, основанное исключительно на мировом пространстве.

Если бы кто-нибудь мог помочь мне в том, как бы я поступил так, чтобы движение персонажей основывалось на оси камеры, а не на мировой оси, это было бы очень полезно.

Скрипт движения персонажа

 if (gameObject.GetComponent<CharacterJumpScript>().isGrounded)
        {
            Vector3 posi = new Vector3((Input.GetAxis("LeftJoystickHorizontal") * characterMovement), 0.0f, (Input.GetAxis("LeftJoystickVertical") * characterMovement));
            this.transform.position += posi;
        }

камера следит за сценарием

 private void FixedUpdate()
    {
        float rot = followTarget.gameObject.transform.rotation.eulerAngles.y;
        print(rot);
        Vector3 oldOffset = cameraOffset;
        cameraOffset = Vector3.Lerp(oldOffset, new Vector3(-Mathf.Sin(Mathf.Deg2Rad * rot) * 20.0f, 8.0f, -Mathf.Cos(Mathf.Deg2Rad * rot) * 20.0f), Time.deltaTime);
        Vector3 desiredPosition = followTarget.position + cameraOffset;
        Vector3 smoothPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
        transform.position = smoothPosition ;
        transform.LookAt(followTarget);
    }

Заранее большое спасибо.

0 ответов

Другие вопросы по тегам