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