返回介绍

Camera.worldToCameraMatrix 世界转相机矩阵

发布于 2019-12-18 15:37:29 字数 2355 浏览 1335 评论 0 收藏 0

JavaScript => var worldToCameraMatrix: Matrix4x4;
C# => Matrix4x4 worldToCameraMatrix;

Description 描述

Matrix that transforms from world to camera space.

从世界到相机空间的变换矩阵。

Use this to calculate the camera space position of objects or to provide custom camera's location that is not based on the transform.

用这个计算物体的相机空间位置或提供自定义的位置,这个位置不是基于变换的。

Note that camera space matches OpenGL convention: camera's forward is the negative Z axis. This is different from Unity's convention, where forward is the positive Z axis.

注意相机空间和OpenGl的约定相匹配,相机的前面为Z轴负方向,这不同于Unity的约定,向前为Z轴正向。

If you change this matrix, the camera no longer updates its rendering based on its Transform. This lasts until you call ResetWorldToCameraMatrix.

如果你改变这个矩阵,相机的渲染不再基于它的Transform更新,知道调用ResetWorldToCameraMatrix.

JavaScript:

	// 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;
	}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : 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;
    }
}

Camera

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文