Сброс повернутой камеры, чтобы снова оказаться позади игрока - PullRequest
0 голосов
/ 12 января 2019

Я работаю над камерой орбиты от третьего лица, которая следит за игроком.

Я успешно могу прикрепить камеру к плееру, а также повернуть камеру вокруг плеера с помощью Mouse X.

Уже 3 часа я пытаюсь вернуть камеру (по щелчку правой кнопкой мыши), чтобы она была точно позади игрока (показывая его спину) снова после того, как игрок немного повернулся и повернулся в мире, а камера обвела его .

Спасибо за помощь!

    Vector3 defaultOffset; // offset on scene start
    Vector3 offset;  // offset when camera is rotated by Mouse X

    void Start() {
        defaultOffset = transform.position - player.transform.position;
        offset = defaultOffset;
    }

    void LateUpdate() {
        if (Input.GetMouseButtonDown(1)) {
            // reset offset vector to be behind 
            // player on right-mouse button click
            // ??? HOW ???
        } else {
            // take movement of Mouse axis to rotate around the player
            float degrees = Input.GetAxis("Mouse X") * 0.5 * Time.deltaTime;
            Quaternion angle = Quaternion.AngleAxis(degrees, Vector3.up);
            offset = angle * offset;
        }

        // set camera position and look at player
        transform.position = player.transform.position + offset;
        transform.LookAt(player.transform);
    }

1 Ответ

0 голосов
/ 14 января 2019

Попробуйте:

transform.position = player.position - player.forward * 2.5f;

Я думаю, это может сработать.

...