То, что я пытаюсь сделать, это добавить автоматическую вертикальную прокрутку при слишком большом раскрытии окна редактора:
Если, например, на скриншоте это оригинальный размер окна редактора:

При нажатии, например, «Разговоры» и свертывании его, я хочу сделать это с помощью вертикальной прокрутки:
Я могу продолжать растягивать окно с помощьюмышь, но я хочу использовать прокрутку в этом случае вместо:

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
public class ConversationsEditorWindow : EditorWindow
{
[MenuItem("Window/Editor Window Test")]
static void Init()
{
// Get existing open window or if none, make a new one:
ConversationsEditorWindow window = (ConversationsEditorWindow)EditorWindow.GetWindow(typeof(ConversationsEditorWindow));
}
void OnGUI()
{
GameObject sel = Selection.activeGameObject;
ConversationTrigger targetComp = sel.GetComponent<ConversationTrigger>();
if (targetComp != null)
{
EditorGUILayout.BeginVertical();
var editor = Editor.CreateEditor(targetComp);
var tar = editor.targets;
editor.OnInspectorGUI();
EditorGUILayout.EndScrollView();
EditorGUILayout.EndVertical();
}
}
}
Сообщение об исключении немного длинное: исключение находится на линии27:
EditorGUILayout.EndScrollView();
InvalidOperationException: стек пуст.System.Collections.Stack.Peek () (at: 0) UnityEngine.GUI.EndScrollView (System.Boolean handleScrollWheel) (в C: /buildslave/unity/build/Modules/IMGUI/GUI.cs: 1481) UnityEngine.GUILayout.EndScrollView (System.Boolean handleScrollWheel) (в C: /buildslave/unity/build/Modules/IMGUI/GUILayout.cs: 387) UnityEditor.EditorGUILayout.EndScrollView () (в C: / buildslave / unity / build / Editor / Mono /EditorGUI.cs: 9203) ConversationsEditorWindow.OnGUI () (в Assets / Editor / ConversationsEditorWindow.cs: 27) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.BinderПараметры System.Object [], культура System.Globalization.CultureInfo) (при: 0) Rethrow as TargetInvocationException: Исключение было сгенерировано целью вызова.System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, параметры System.Object [], System.Globalization.CultureInfo culture) (по адресу: 0) System.Reflection.MethodBase.Invoke (параметры System.Object obj, System.Object []) (в: 0) UnityEditor.HostView.Invoke (имя метода System.String, System.Object obj) (в C: / buildslave / unity / build / Editor /Mono / HostView.cs: 342) UnityEditor.HostView.Invoke (имя метода System.String) (в C: /buildslave/unity/build/Editor/Mono/HostView.cs: 336) UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGU, UnityEngine.Rect viewRect) (в C: /buildslave/unity/build/Editor/Mono/HostView.cs: 310) UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean customBder.Булево плавающее окно, System.Boolean isBottomTab) (в C: /buildslave/unity/build/Editor/Mono/GUI/DockArea.cs: 361) UnityEditor.DockArea.OldOnGUI () (в C: / buildslave / unity / build / Editor / Mono / GUI / DockArea.cs: 320) UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect отсечениеRect, сборка)./unity/build/Modules/UIElements/IMGUIContainer.cs:244) UnityEngine.GUIUtility: ProcessEvent (Int32, IntPtr)