ワールド空間からカメラ空間に変換する行列。
これは、オブジェクトのカメラ空間での位置を計算する、
Transform コンポーネントに基づかないカスタムカメラ位置を提供するために使用します。
カメラ空間は OpenGL の慣習と一致していることに注意してください。
つまり、カメラの前方は Z 軸の負数を取るということです。
これは、前方が Z 軸の正数を取る Unity の慣習とはことなります。
この行列を変更した場合、カメラは 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 camera; void Start() { camera = 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)); camera.worldToCameraMatrix = m * transform.worldToLocalMatrix; } }