Camera.worldToCameraMatrix

切换到手册
public Matrix4x4 worldToCameraMatrix ;

描述

从世界空间变换为摄像机空间的矩阵。

用于计算对象的摄像机空间位置, 或提供不基于变换的自定义摄像机位置。

注意,摄像机空间遵守 OpenGL 约定:摄像机前方为负 Z 轴。这与 Unity 的约定不同,在 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; } }