Matrix that transforms from world to camera space.
// Offsets camera's rendering from the transform's position. var offset : Vector3 = Vector3 (0,1,0); function LateUpdate () { // Construct a matrix that offsets and mirrors along // Z axis. Because camera space has mirrored Z with respect // to the rest of Unity. var camoffset : Vector3 = Vector3 (-offset.x, -offset.y, offset.z); var m : Matrix4x4 = Matrix4x4.TRS (camoffset, Quaternion.identity, Vector3 (1,1,-1)); // Override worldToCameraMatrix to be offset/mirrored // transform's matrix. camera.worldToCameraMatrix = m * transform.worldToLocalMatrix; }
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public Vector3 offset = new Vector3(0, 1, 0); void LateUpdate() { Vector3 camoffset = new Vector3(-offset.x, -offset.y, offset.z); Matrix4x4 m = Matrix4x4.TRS(camoffset, Quaternion.identity, new Vector3(1, 1, -1)); camera.worldToCameraMatrix = m * transform.worldToLocalMatrix; } }
import UnityEngine import System.Collections public class Example(MonoBehaviour): public offset as Vector3 = Vector3(0, 1, 0) def LateUpdate() as void: camoffset as Vector3 = Vector3(-offset.x, -offset.y, offset.z) m as Matrix4x4 = Matrix4x4.TRS(camoffset, Quaternion.identity, Vector3(1, 1, -1)) camera.worldToCameraMatrix = (m * transform.worldToLocalMatrix)