You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中UI Toolkit自定义Inspector在运行模式下消失问题

UI Toolkit自定义Inspector运行模式消失的解决办法

常见修复方案

1. 规范Editor类的定义

你的自定义Inspector对应的Editor类必须满足以下要求:

  • 继承自UnityEditor.Editor
  • 用[CustomEditor(typeof(你的目标脚本类))]特性绑定到目标脚本
  • 若需要在运行模式下编辑目标对象,给目标脚本添加[ExecuteInEditMode]特性(注意:这会让脚本的Awake/Start等方法在编辑模式也执行,按需使用)

示例代码:

using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine;

[CustomEditor(typeof(YourTargetScript))]
public class YourTargetScriptEditor : Editor
{
    public VisualTreeAsset uXML;

    public override VisualElement CreateInspectorGUI()
    {
        var root = new VisualElement();

        if (uXML == null)
        {
            Debug.LogError("UI Document 引用为空");
            return root;
        }

        uXML.CloneTree(root);
        return root;
    }
}

2. 验证运行模式下的资源引用

运行模式下序列化的VisualTreeAsset可能出现引用失效问题,可尝试:

  • 临时将uXML文件移入Resources文件夹,通过Resources.Load<VisualTreeAsset>("资源相对路径")加载替代Inspector赋值,测试是否恢复正常
  • 检查uXML文件的Importer设置,确保未勾选仅在编辑模式可用的选项

3. 强制Inspector在运行模式刷新

在Editor类中添加[CanEditMultipleObjects]特性,或在生命周期方法中注册刷新事件:

private void OnEnable()
{
    Selection.selectionChanged += Repaint;
}

private void OnDisable()
{
    Selection.selectionChanged -= Repaint;
}

4. 排查版本兼容性问题

部分旧版Unity的UI Toolkit在运行模式下的Inspector支持存在bug,建议升级到2022.3+的LTS版本测试。


问题表现:进入运行模式后自定义Inspector消失,退出运行模式后恢复:
运行模式下Inspector消失,退出后恢复

内容的提问来源于stack exchange,提问作者Obscure021

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:39:52