当前位置: 首页 > 知识库问答 >
问题:

为什么当试图使垂直滚动编辑器窗口我得到异常无效操作异常:堆栈空。?

程皓轩
2023-03-14

我想做的是添加自动垂直滚动时,扩大编辑器窗口太多到底部:

例如,如果在屏幕截图中,这是原始的editorwindow大小:

当点击例如对话和折叠它,然后我想使它与垂直滚动:

我可以用鼠标继续向下拉伸窗口,但我想在这种情况下使用滚动:

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();

无效操作异常:堆栈为空。系统。集合。堆栈。Peek()(at: 0)UnityEngine. GUI. EndScrollView(System. Boolean handleScrollWheel)(at C:/build dlave/Unity/build/Modules/IMGUI/GUI. cs: 1481)UnityEngine. GUILayout. EndScrollView(System. Boolean handleScrollWheel)(at C:/build dlave/Unity/build/Modules/IMGUI/GUILayout.cs:387)UnityEditor. EditorGUILayout. EndScrollView()(at C:/build dlave/Unity/build/Editor/Mono/EditorGUI. cs: 9203)ConversationsEditorWindow. OnGUI()(at资产/编辑器/对话编辑器indow.cs:27)System. Reflection. Monomethod. Invoke(System. Object obj, System. Reflection. BindingFlags keattr, System对象obj,System. Object. Reflection. BindingFlags调用attr,System. Reflection. Binder活页夹,System. Object[]参数,系统。全球化。文化信息文化)(在:0)系统。反射。方法库。调用(System. Object obj,System. Object[]参数)(在:0)统一编辑器。主机视图。调用(系统。字符串方法名称,系统。对象obj)(在C:/Buildlave/统一/构建/编辑器/单声道/HostView.cs:342)统一编辑器。主机视图。调用(系统。字符串方法名称)(在C:/Buildlave/统一/构建/编辑器/单声道/HostView.cs:336)统一编辑器。HostView. InvokeOnGUI(UnityEngine. Rect onGUIPotion, UnityEngine. Rect view Rect)(在C:/Buildlave/统一/构建/编辑器/单声道/HostView.cs:310)统一编辑器。DockArea。绘图视图(统一Boolean isBottomTab)(在C:/build dlave/Unity/build/Editor/Mono/GUI/DockArea.cs:361)UnityEditor. DockArea. OldOnGUI()(在C:/build dlave/Unity/build/编辑器/Mono/GUI/DockArea.cs:320)UnityEngine.实验性的。UIElement. IMGUIContainer. DoOnGUI(UnityEngine.事件evt, UnityEngine. Matrix4x4 world Transform, UnityEngine. Rect clippingRect, System. Boolean isComputingLayout)(在C:/build dlave/Unity/build/Modules/UIElement/IMGUIContainer.cs:244)UnityEngine. GUIU力:过程事件(Int32, IntPtr)

共有1个答案

靳睿
2023-03-14

Stack empty message提供了一条线索——您正在调用:EditorGUILayout。EndScrollView();(尝试从gui堆栈中弹出)而无需事先调用BeginScrollView()。

 类似资料:
  • 我从下面的地方得到了NullPointException。 因为我使用ThreadPoolExecutor,并在此thread方法中获得异常。然后我有其他方法重写AfterExecute: 之后: 为什么日志不同?如果有人能解释原因,我真的很感激。

  • 我编写了这段代码,将整个以10为基数的数字转换成二进制。我相信代码就是它所需要的一切,但我无法让工作。 我在这个网站和其他网站上花了几个小时,尝试了无数次的修改,但都没有用。 我已经让代码无错误地编译,但一旦我运行它并输入程序就会崩溃。 下面是代码: 这些是java在我输入数字时抛出的异常。 我希望这是足够的信息。

  • 我正在学习“放心框架”。 我使用http://ziptasticapi.com免费的API为我的演习。 当我打电话: 我得到以下字符串: {“国家”:“美国”、“州”:“正义与发展党”、“城市”:“阿达克”} as响应字符串值。 当我尝试时: 我突然想到: JAVAlang.IllegalStateException:无法分析对象,因为响应中未指定支持的内容类型。内容类型为“文本/html”;字符

  • 请问为什么第13行的错误是未报告的异常,必须捕获pr声明要抛出

  • 问题内容: 我刚刚尝试了Jasper Report,我正在关注此站点的教程 我也下载了示例源,然后运行它,没有错误。但是,当我使用创建自己的报告时,请对其进行编译,然后将文件添加到我的项目中。还有,当我运行我的程序: 这是我用于显示报告的按钮操作(这只是示例,报告仅包含一个带有参数的文本:outputText): 如果有问题,我已经将所有需要的jar导入到我的项目中,当我使用该教程中的文件时没有问

  • 问题内容: 我已经在“ userInfo”类中实现了Serializable。我仍然感到异常。这是输出控制台- 这是我的两节课: 问题答案: 为什么我实现了’Serializable’却得到NotSerializableException异常 你还没有 java.io.NotSerializableException:chatservernazmus.User公共类userInfo实现了Seria