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

GizmoUtility

UnityEditor 中的类

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

一个用于与场景视图图标和类型的 Gizmo 交互的静态类。

using System;
using UnityEditor;
using UnityEngine;

// An Editor Window that lets you edit the gizmo and icon properties for each selected component.
public class GizmoUtilityExample  : EditorWindow
{
    [MenuItem("Window/Gizmo Window")]
    static void Init() => GetWindow<GizmoUtilityExample>();

    Vector2 m_Scroll;

    void OnEnable()
    {
        autoRepaintOnSceneChange = true;
    }

    void OnGUI()
    {
        GizmoUtility.use3dIcons = EditorGUILayout.Toggle("3D Icons", GizmoUtility.use3dIcons);

        EditorGUI.BeginDisabled(!GizmoUtility.use3dIcons);
        GizmoUtility.iconSize = EditorGUILayout.Slider("3D Icon Size", GizmoUtility.iconSize, 0f, 1f);
        EditorGUI.EndDisabled();

        m_Scroll = EditorGUILayout.BeginScrollView(m_Scroll);

        foreach (var go in Selection.gameObjects)
        {
            GUILayout.Label($"{go.name} Gizmos", EditorStyles.boldLabel);

            EditorGUI.indentLevel++;
            foreach (var component in go.GetComponents<Component>())
            {
                // A component can have gizmos, an icon, both, or neither. A gizmo can also be disabled (the Editor
                // is collapsed in the Inspector).
                if (GizmoUtility.TryGetGizmoInfo(component.GetType(), out GizmoInfo info))
                {
                    EditorGUI.BeginChangeCheck();

                    if (info.hasGizmo)
                        info.gizmoEnabled = EditorGUILayout.Toggle($"{info.name} Gizmo", info.gizmoEnabled);

                    if (info.hasIcon)
                        info.iconEnabled = EditorGUILayout.Toggle($"{info.name} Icon", info.iconEnabled);

                    if (EditorGUI.EndChangeCheck())
                        GizmoUtility.ApplyGizmoInfo(info);
                }
            }
            EditorGUI.indentLevel--;
        }

        EditorGUILayout.EndScrollView();
    }
}

静态属性

iconSize控制 3D 图标在场景视图中渲染的大小。
use3dIcons确定场景视图中的图标是固定大小(false)还是相对于与摄像机的距离和 iconSize 进行缩放。

静态方法

ApplyGizmoInfo为 GizmoInfo 对象应用 gizmoEnabled 和 iconEnabled。
GetGizmoInfo获取项目中所有具有 Gizmo 或图标的组件的 GizmoInfo。
SetGizmoEnabled启用或禁用场景视图中组件类型的 Gizmo 渲染。Gizmo 是组件编辑器绘制的简单线条和指南。例如,摄像机视锥体指南就是 Gizmo。
SetIconEnabled启用或禁用场景视图中所有对象针对组件类型的图标渲染。
TryGetGizmoInfo如果存在,则获取类型的 GizmoInfo。