【Unity】 扩展编辑器 Unity Editor OnInspectorGUI 绘制数据显示更新不及时问题 数据无法实时显示 数据无法动态更新 刷新OnInspectorGUI

原文(我查到这个解决的):Unity - Editor OnInspectorGUI 绘制数据显示更新不及时问题_unity oninspectorgui-CSDN博客

先放解决方案:

直接在OnInspectorGUI尾加上如下代码

    public override void OnInspectorGUI()
    {
        //---其他GUI代码---
                              //Object target	标记为“脏”的对象。
        EditorUtility.SetDirty(target);//增加脏标记
    }

项目场景:

例如:在代码中使用了OnDrawGizmos()画了辅助线后,在Unity Editor OnInspectorGUI中重写了OnDrawGizmos中使用的参数,就会出现更新不及时的问题
 

如图所示 输入数据后必须按回车Gizmos才会改变
 如图所示 输入数据后必须按回车Gizmos才会改变

原因:

脏标记(Dirty Flag):当你通过 OnInspectorGUI 修改了某个值,Unity不会自动立即重新调用OnDrawGizmos。相反,它依赖于Unity的脏标记系统来决定何时重新渲染场景视图。如果你修改了属性但没有触发脏标记,场景视图可能不会立即更新。

所以解决方法就是在 OnInspectorGUI 中修改属性后,尝试调用 :

EditorUtility.SetDirty(target) 来标记目标对象为“脏”,这可能会触发Unity重新渲染场景视图。


调用后:

OnInspectorGUI后调用Gizmos的更新就丝滑了许多:

增加脏标记后解决了问题
增加脏标记后解决了问题

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值