版本: Unity 6 (6000.0)
语言英语
  • C#

Camera.worldToCameraMatrix

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册
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; } }