Я установил сфальсифицированный персонаж игрока, переместил основную камеру внутри объекта игрока, чтобы он всегда двигался вместе с игроком, и добавил простой скрипт перемещения камеры, которым управляет мышь. Сценарий прикреплен к объекту игрока.
Вот код сценария:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseLook : MonoBehaviour
{
public float mouseSensitivity = 100f;
public float minAngle = -45f;
public float maxAngle = 45f;
public float minPosition = 0f;
public float maxPosition = 6f;
public float camDefaultY = 3.198001f;
public GameObject headObject;
private float yaw = 0f;
private float pitch = 0f;
private Transform headAngle;
// Start is called before the first frame update
void Start()
{
headAngle = headObject.transform;
}
// Update is called once per frame
void Update()
{
yaw += Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
pitch -= Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
pitch = Mathf.Clamp(pitch, minAngle, maxAngle);
transform.eulerAngles = new Vector3(0f, yaw, 0f);
headObject.transform.eulerAngles = new Vector3(-pitch, headAngle.eulerAngles.y, headAngle.eulerAngles.z);
Camera.main.transform.eulerAngles = new Vector3(pitch, yaw, 0f);
}
}
Предпочтительный результат:
- заставить объект игрока вращаться с камера по горизонтали (по оси x) при движении мыши ( решено )
- заставляет голову игрока (дочерний объект) и камеру вращаться вертикально при движении мыши ( решено )
- ограничить вертикальное вращение камеры, скажем, до 45 ° ( решено )
- позиционировать камеру вертикально, чтобы объект игрока всегда находился в одном и том же месте ( возникла проблема с this )
Проблема, с которой я сталкиваюсь, заключается в том, что, хотя у меня работают первые 3 вещи, я не могу найти правильный способ расположить камеру вертикально таким образом, чтобы объект игрока всегда будет оставаться +/- в том же месте / вид. Как мне этого добиться?
Вот что я получил:
![result](https://i.ibb.co/rmcTPr4/ezgif-com-video-to-gif.gif)
И вот чего я хочу достичь (обратите внимание, как игрок остается в то же место в камере):
Также я хотел бы знать, есть ли, возможно, более простой способ добиться всего этого управления мышью от третьего лица?
Заранее спасибо!