Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход

GizmoUtility

класс в UnityEditor

Описание

Статический класс для работы со значками и гизмо типов в окне Scene View.

using System;
using UnityEditor;
using UnityEngine;

namespace UnityEditor.Gizmos.Tests
{
// 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 в представлении Scene.
use3dIconsОпределяет, имеют ли значки в представлении Scene фиксированный размер (false) или масштабируются относительно расстояния от камеры и iconSize.

Статические методы

Метод Описание
ApplyGizmoInfoПрименить GizmoInfo.gizmoEnabled и GizmoInfo.iconEnabled к объекту GizmoInfo.
GetGizmoInfoПолучить GizmoInfo для всех компонентов с гаджетами или значками в проекте.
SetGizmoEnabledВключить или отключить отображение гаджетов в представлении Scene для типа компонента. Гаджеты — это простые линии и направляющие, нарисованные редакторами компонентов. Например, Camera frustum guidelines — это гаджеты.
SetIconEnabledВключить или отключить отображение значков для всех объектов в представлении Scene для типа компонента.
TryGetGizmoInfoПолучить GizmoInfo для типа, если он существует.