Как я могу заставить камеру вращаться также вверх и вниз? - PullRequest
2 голосов
/ 04 августа 2020

Следует использовать для этого Cinemachine или лучше сделать это скриптом с нуля?

Скрипт прикреплен к основной камере.

Теперь это орбита только слева направо. Я хочу, чтобы он вращался на 360 градусов с зажимом, чтобы он не опускался на пол и не поднимался обратно.

Я должен также Y, а не только X, но не знаю, как это сделать.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerFollow : MonoBehaviour {

    public Transform PlayerTransform;

    private Vector3 _cameraOffset;

    [Range(0.01f, 1.0f)]
    public float SmoothFactor = 0.5f;

    public bool LookAtPlayer = false;

    public bool RotateAroundPlayer = true;

    public float RotationsSpeed = 5.0f;

    // Use this for initialization
    void Start () {
        _cameraOffset = transform.position - PlayerTransform.position;  
    }
    
    // LateUpdate is called after Update methods
    void LateUpdate () {

        if(RotateAroundPlayer)
        {
            Quaternion camTurnAngle =
                Quaternion.AngleAxis(Input.GetAxis("Mouse X") * RotationsSpeed, Vector3.up);

            _cameraOffset = camTurnAngle * _cameraOffset;
        }

        Vector3 newPos = PlayerTransform.position + _cameraOffset;

        transform.position = Vector3.Slerp(transform.position, newPos, SmoothFactor);

        if (LookAtPlayer || RotateAroundPlayer)
            transform.LookAt(PlayerTransform);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...