本文整理汇总了C#中UnityEditor.Editor.CanBeExpandedViaAFoldout方法的典型用法代码示例。如果您正苦于以下问题:C# Editor.CanBeExpandedViaAFoldout方法的具体用法?C# Editor.CanBeExpandedViaAFoldout怎么用?C# Editor.CanBeExpandedViaAFoldout使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UnityEditor.Editor
的用法示例。
在下文中一共展示了Editor.CanBeExpandedViaAFoldout方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawEditor
private void DrawEditor(Editor editor, int editorIndex, bool rebuildOptimizedGUIBlock, ref bool showImportedObjectBarNext, ref Rect importedObjectBarRect)
{
if ((UnityEngine.Object) editor == (UnityEngine.Object) null)
return;
UnityEngine.Object target = editor.target;
GUIUtility.GetControlID(target.GetInstanceID(), FocusType.Passive);
EditorGUIUtility.ResetGUIState();
GUILayoutGroup topLevel = GUILayoutUtility.current.topLevel;
int visible = this.m_Tracker.GetVisible(editorIndex);
bool flag1;
if (visible == -1)
{
flag1 = InternalEditorUtility.GetIsInspectorExpanded(target);
this.m_Tracker.SetVisible(editorIndex, !flag1 ? 0 : 1);
}
else
flag1 = visible == 1;
rebuildOptimizedGUIBlock |= editor.isInspectorDirty;
if (Event.current.type == EventType.Repaint)
editor.isInspectorDirty = false;
ScriptAttributeUtility.propertyHandlerCache = editor.propertyHandlerCache;
bool flag2 = AssetDatabase.IsMainAsset(target) || AssetDatabase.IsSubAsset(target) || editorIndex == 0 || target is Material;
if (flag2)
{
string message = string.Empty;
bool flag3 = editor.IsOpenForEdit(out message);
if (showImportedObjectBarNext)
{
showImportedObjectBarNext = false;
GUILayout.Space(15f);
importedObjectBarRect = GUILayoutUtility.GetRect(16f, 16f);
importedObjectBarRect.height = 17f;
}
flag1 = true;
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;
//.........这里部分代码省略.........