Я работаю над камерой орбиты от третьего лица, которая следит за игроком.
Я успешно могу прикрепить камеру к плееру, а также повернуть камеру вокруг плеера с помощью 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);
}