Version: 2022.3
public static Matrix4x4 matrix ;

描述

设置 Unity Editor 用于绘制 GizmosMatrix4x4

Gizmos.matrix 存储 Gizmos 的位置、旋转和缩放。默认情况下,Gizmos 始终使用世界坐标。默认的 Gizmos.matrix 使用默认的单位矩阵来转换世界坐标。Transform.localToWorldMatrix 将本地坐标空间更改为世界空间。

GameObject 通常使用本地坐标。Gizmos.matrix 将这些本地坐标更改为世界坐标以便 Gizmos 使用它们。例如,旋转对象使用本地坐标。使用 Gizmos.matrix 即可转换为世界坐标。要将对象可视化,请使用 Gizmos.DrawCube。请参阅下文。

要使用该示例绘制红色、半透明的立方体辅助图标,请执行以下操作:
1. 将此示例脚本放在位于原点的圆柱体 (Cylinder) 上。
2. 在 Hierarchy 中选择该圆柱体,然后单击 Play 按钮。
3. 接着,单击 Scene 按钮。此时应该出现辅助图标。\ 圆柱体将以 Play 模式旋转,并在 Scene 视图中旋转。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// Gizmos.matrix example

public class Example : MonoBehaviour { // Allow the speed of rotation to be changed. public float rotationSpeed = 50.0f;

void OnDrawGizmosSelected() { Gizmos.color = new Color(0.75f, 0.0f, 0.0f, 0.75f);

// Convert the local coordinate values into world // coordinates for the matrix transformation. Gizmos.matrix = transform.localToWorldMatrix; Gizmos.DrawCube(Vector3.zero, Vector3.one); }

// Rotate the cylinder. void Update() { float zRot = rotationSpeed * Time.deltaTime; transform.Rotate(0.0f, 0.0f, zRot); } }