本文整理汇总了C#中UnityEditor.Editor.OnInspectorGUI方法的典型用法代码示例。如果您正苦于以下问题:C# Editor.OnInspectorGUI方法的具体用法?C# Editor.OnInspectorGUI怎么用?C# Editor.OnInspectorGUI使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UnityEditor.Editor
的用法示例。
在下文中一共展示了Editor.OnInspectorGUI方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawEditor
//.........这里部分代码省略.........
{
EditorGUI.BeginDisabledGroup(!editor.IsEnabled());
bool flag6 = EditorGUILayout.InspectorTitlebar(flag, editor.targets);
if (flag != flag6)
{
this.m_Tracker.SetVisible(editorIndex, (!flag6) ? 0 : 1);
InternalEditorUtility.SetIsInspectorExpanded(target, flag6);
if (flag6)
{
this.m_LastInteractedEditor = editor;
}
else
{
if (this.m_LastInteractedEditor == editor)
{
this.m_LastInteractedEditor = null;
}
}
}
EditorGUI.EndDisabledGroup();
}
if (flag5 && flag)
{
GUILayout.Label("Multi-object editing not supported.", EditorStyles.helpBox, new GUILayoutOption[0]);
return;
}
EditorGUIUtility.ResetGUIState();
EditorGUI.BeginDisabledGroup(!editor.IsEnabled());
GenericInspector genericInspector = editor as GenericInspector;
if (genericInspector)
{
genericInspector.m_InspectorMode = this.m_InspectorMode;
}
EditorGUIUtility.hierarchyMode = true;
EditorGUIUtility.wideMode = (base.position.width > 330f);
ScriptAttributeUtility.propertyHandlerCache = editor.propertyHandlerCache;
Rect rect = default(Rect);
OptimizedGUIBlock optimizedGUIBlock;
float num;
if (editor.GetOptimizedGUIBlock(flag2, flag, out optimizedGUIBlock, out num))
{
rect = GUILayoutUtility.GetRect(0f, (!flag) ? 0f : num);
this.HandleLastInteractedEditor(rect, editor);
if (Event.current.type == EventType.Layout)
{
return;
}
if (optimizedGUIBlock.Begin(flag2, rect) && flag)
{
GUI.changed = false;
editor.OnOptimizedInspectorGUI(rect);
}
optimizedGUIBlock.End();
}
else
{
if (flag)
{
GUIStyle style = (!editor.UseDefaultMargins()) ? GUIStyle.none : EditorStyles.inspectorDefaultMargins;
rect = EditorGUILayout.BeginVertical(style, new GUILayoutOption[0]);
this.HandleLastInteractedEditor(rect, editor);
GUI.changed = false;
try
{
editor.OnInspectorGUI();
}
catch (Exception ex)
{
if (ex is ExitGUIException)
{
throw;
}
Debug.LogException(ex);
}
EditorGUILayout.EndVertical();
}
if (Event.current.type == EventType.Used)
{
return;
}
}
EditorGUI.EndDisabledGroup();
if (GUILayoutUtility.current.topLevel != topLevel)
{
if (!GUILayoutUtility.current.layoutGroups.Contains(topLevel))
{
Debug.LogError("Expected top level layout group missing! Too many GUILayout.EndScrollView/EndVertical/EndHorizontal?");
GUIUtility.ExitGUI();
}
else
{
Debug.LogWarning("Unexpected top level layout group! Missing GUILayout.EndScrollView/EndVertical/EndHorizontal?");
while (GUILayoutUtility.current.topLevel != topLevel)
{
GUILayoutUtility.EndLayoutGroup();
}
}
}
this.HandleComponentScreenshot(rect, editor);
}
示例2: DrawEditor
//.........这里部分代码省略.........
EditorGUI.BeginDisabledGroup(!flag3);
editor.DrawHeader();
EditorGUI.EndDisabledGroup();
}
if (editor.target is AssetImporter)
showImportedObjectBarNext = true;
bool flag4 = false;
if (editor is GenericInspector && CustomEditorAttributes.FindCustomEditorType(target, false) != null && this.m_InspectorMode != InspectorMode.DebugInternal)
{
if (this.m_InspectorMode == InspectorMode.Normal)
flag4 = true;
else if (target is AssetImporter)
flag4 = true;
}
if (!flag2)
{
EditorGUI.BeginDisabledGroup(!editor.IsEnabled());
bool isExpanded = EditorGUILayout.InspectorTitlebar(flag1, editor.targets, editor.CanBeExpandedViaAFoldout());
if (flag1 != isExpanded)
{
this.m_Tracker.SetVisible(editorIndex, !isExpanded ? 0 : 1);
InternalEditorUtility.SetIsInspectorExpanded(target, isExpanded);
if (isExpanded)
this.m_LastInteractedEditor = editor;
else if ((UnityEngine.Object) this.m_LastInteractedEditor == (UnityEngine.Object) editor)
this.m_LastInteractedEditor = (Editor) null;
}
EditorGUI.EndDisabledGroup();
}
if (flag4 && flag1)
{
GUILayout.Label("Multi-object editing not supported.", EditorStyles.helpBox, new GUILayoutOption[0]);
}
else
{
EditorGUIUtility.ResetGUIState();
EditorGUI.BeginDisabledGroup(!editor.IsEnabled());
GenericInspector genericInspector = editor as GenericInspector;
if ((bool) ((UnityEngine.Object) genericInspector))
genericInspector.m_InspectorMode = this.m_InspectorMode;
EditorGUIUtility.hierarchyMode = true;
EditorGUIUtility.wideMode = (double) this.position.width > 330.0;
ScriptAttributeUtility.propertyHandlerCache = editor.propertyHandlerCache;
Rect rect = new Rect();
OptimizedGUIBlock block;
float height;
if (editor.GetOptimizedGUIBlock(rebuildOptimizedGUIBlock, flag1, out block, out height))
{
rect = GUILayoutUtility.GetRect(0.0f, !flag1 ? 0.0f : height);
this.HandleLastInteractedEditor(rect, editor);
if (Event.current.type == EventType.Layout)
return;
if (block.Begin(rebuildOptimizedGUIBlock, rect) && flag1)
{
GUI.changed = false;
editor.OnOptimizedInspectorGUI(rect);
}
block.End();
}
else
{
if (flag1)
{
rect = EditorGUILayout.BeginVertical(!editor.UseDefaultMargins() ? GUIStyle.none : EditorStyles.inspectorDefaultMargins, new GUILayoutOption[0]);
this.HandleLastInteractedEditor(rect, editor);
GUI.changed = false;
try
{
editor.OnInspectorGUI();
}
catch (Exception ex)
{
if (ex is ExitGUIException)
throw;
else
Debug.LogException(ex);
}
EditorGUILayout.EndVertical();
}
if (Event.current.type == EventType.Used)
return;
}
EditorGUI.EndDisabledGroup();
if (GUILayoutUtility.current.topLevel != topLevel)
{
if (!GUILayoutUtility.current.layoutGroups.Contains((object) topLevel))
{
Debug.LogError((object) "Expected top level layout group missing! Too many GUILayout.EndScrollView/EndVertical/EndHorizontal?");
GUIUtility.ExitGUI();
}
else
{
Debug.LogWarning((object) "Unexpected top level layout group! Missing GUILayout.EndScrollView/EndVertical/EndHorizontal?");
while (GUILayoutUtility.current.topLevel != topLevel)
GUILayoutUtility.EndLayoutGroup();
}
}
this.HandleComponentScreenshot(rect, editor);
}
}