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

Gizmos.matrix

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。尽管我们无法接受所有提交,但我们会认真阅读用户建议的每处更改,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,未能提交您的建议更改。请在几分钟后重新 尝试。感谢您抽出时间帮助我们提高 Unity 文档质量。

关闭

取消

public static Matrix4x4 matrix;

描述

设置 Unity 编辑器用于绘制 GizmosMatrix4x4

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

GameObject 经常使用局部坐标。Gizmos.matrix 会将这些局部坐标更改为世界坐标,让 Gizmos 可以使用这些局部坐标。例如,旋转对象会使用局部坐标。使用 Gizmos.matrix 可以将这些坐标转换为世界坐标。要对对象进行可视化,请使用 Gizmos.DrawCube。见下文。

要使用该示例绘制红色半透明方体图元
1. 在原点的圆柱体上放置该示例脚本。
2. 在层次结构中选择圆柱体,然后单击 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); } }