1
1
Ответвление 0
InsAsterix/InsAsterix/Library/PackageCache/com.unity.visualscripting@1.8.0/Editor/VisualScripting.Core/Inspection/Root/LudiqRootObjectEditor.cs
2023-03-02 20:21:33 +01:00

91 строка
3,5 КиБ
C#

using UnityEditor;
using UnityEngine;
namespace Unity.VisualScripting
{
public abstract class LudiqRootObjectEditor : OptimizedEditor<LudiqRootObjectEditor.Individual>
{
public class Individual : IndividualEditor
{
protected override void Initialize()
{
dataProperty = serializedObject.FindPropertyOrFail("_data");
metadata = Metadata.Root().StaticObject(serializedObject.targetObject);
}
private Metadata metadata;
private SerializedProperty dataProperty;
private Inspector inspector;
private bool debugFoldout;
public override void Dispose()
{
inspector?.Dispose();
}
public override void OnGUI()
{
if (EditorApplication.isCompiling)
{
LudiqGUI.CenterLoader();
return;
}
using (LudiqEditorUtility.editedObject.Override(serializedObject.targetObject))
{
if (PluginContainer.anyVersionMismatch)
{
LudiqGUI.VersionMismatchShieldLayout();
return;
}
if (inspector == null)
{
inspector = metadata.Editor();
}
EditorGUI.BeginChangeCheck();
LudiqGUI.Space(EditorGUIUtility.standardVerticalSpacing);
inspector.DrawLayout(GUIContent.none, 20);
if (EditorGUI.EndChangeCheck())
{
editorParent.Repaint();
}
if (BoltCore.instance != null && BoltCore.Configuration.developerMode)
{
debugFoldout = EditorGUILayout.Foldout(debugFoldout, "Developer", true);
if (debugFoldout)
{
var target = serializedObject.targetObject;
if (GUILayout.Button("Show Serialized Data"))
{
((SerializationData)dataProperty.GetUnderlyingValue()).ShowString(target.ToString());
}
EditorGUI.BeginDisabledGroup(true);
EditorGUILayout.PropertyField(dataProperty.FindPropertyRelativeOrFail("_" + nameof(SerializationData.objectReferences)));
EditorGUILayout.Toggle("Prefab definition", target.IsPrefabDefinition());
EditorGUILayout.Toggle("Prefab instance", target.IsPrefabInstance());
EditorGUILayout.Toggle("Connected prefab instance", target.IsConnectedPrefabInstance());
EditorGUILayout.Toggle("Disconnected prefab instance", target.IsDisconnectedPrefabInstance());
EditorGUILayout.Toggle("Scene bound", target.IsSceneBound());
EditorGUILayout.ObjectField("Prefab definition", target.GetPrefabDefinition(), typeof(UnityEngine.Object), true);
EditorGUI.EndDisabledGroup();
}
}
else
{
LudiqGUI.Space(EditorGUIUtility.standardVerticalSpacing);
}
}
}
}
}
}