Кому-нибудь в 2019 году нужна камера, чтобы сместить определенную позицию от своего 3d персонажа?Вот простое решение!Прикрепите этот скрипт к камере, за которой вы хотите следить за игроком.Выберите игрока в качестве цели в редакторе Unity.
Этот сценарий устанавливает новую позицию камеры на
(РЕДАКТИРОВАТЬ: Куда делся LaTeX?)
$v = <targetPosition.x + xOffset, targetPosition.y + yOffset, targetPosition.z + zOffset>$
Преимущества этого сценария:
- Ориентация камеры не меняется, даже если персонаж поворачивается (поскольку камера не связана с игроком).
- Работает независимо от положения игрока
Ограничения: - Поскольку ориентация камеры фиксирована, вам нужно убедиться, что ваш персонаж не скрыт пейзажем.- Этот стиль управления камерой лучше всего подходит для орфографической проекции от третьего лица.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
public Transform target;
Vector3 targetPos;
void Update()
{
targetPos = target.position;
transform.position = new Vector3(targetPos.x + 10f, targetPos.y + 8.571067812f, targetPos.z - 10f);
// transform.LookAt(target.transform);
}
}
Мой вариант использования требовал ортогональной проекции.Ортогональные углы обычно находятся под углом склонения 30 градусов, поэтому мое смещение вернулось на 10 единиц, более чем на 10 единиц и на половину больше, чем у гипотенузы (то есть до 10 * sqrt2 * 1/2).Я также увеличил y-позицию на высоту персонажа (1,5 единицы), что, как я думал, даст лучший центр для цели камеры.Это дает смещение по оси y около 8.571067812.