Camera.worldToCameraMatrix
Declaration
public Matrix4x4 worldToCameraMatrix;Описание
Матрица, которая превращает мир в пространство камеры.
Эта матрица часто называется "матрицей просмотра" в графической литературе.
Используйте эту матрицу для вычисления пространственного положения Camera GameObjects или для определения собственного местоположения Camera, которое не основано на преобразовании.
Обратите внимание, что пространство камеры соответствует OpenGL: камера передняя — это отрицательная ось Z. Это отличается от Unity, где передняя — это положительная ось Z.
Если вы измените эту матрицу, камера больше не обновляет свое отображение на основе Transform. Это продолжается до тех пор, пока вы не вызовете ResetWorldToCameraMatrix.
// Offsets camera's rendering from the transform's position. using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Vector3 offset = new Vector3(0, 1, 0); Camera cam;
void Start() { cam = GetComponent<Camera>(); }
void LateUpdate() { Vector3 camoffset = new Vector3(-offset.x, -offset.y, offset.z); Matrix4x4 m = Matrix4x4.TRS(camoffset, Quaternion.identity, new Vector3(1, 1, -1)); cam.worldToCameraMatrix = m * transform.worldToLocalMatrix; } }
Дополнительные ресурсы: ,Matrix4x4.LookAt,, ,CommandBuffer.SetViewMatrix,.