Editor窗口刷新常用代码

 

复制代码
EditorApplication.RepaintAnimationWindow(); //刷新Animation窗口
EditorApplication.RepaintProjectWindow(); //刷新Project窗口
EditorApplication.RepaintHierarchyWindow(); //刷新hierarchy窗口 

InternalEditorUtility.RepaintAllViews(); //刷新所有窗口

SceneView.RepaintAll(); //刷新场景窗口

typeof(Editor).Assembly.GetType("UnityEditor.GameView").GetMethod("RepaintAll").Invoke(null, null); //刷新Game窗口
typeof(Tools).GetMethod("RepaintAllToolViews", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static).Invoke(null,null); //刷新工具栏
复制代码

 

通用的方式

public static void RepaintInspector()
{
    var windows = UnityEngine.Resources.FindObjectsOfTypeAll<UnityEditor.EditorWindow>();
    foreach (var win in windows)
        if (win.titleContent.text == "Inspector") //Inspector窗口
            win.Repaint();
}

其他的一些窗口的titleContent字符串: Scene, Hierarchy, Navigation, Project, Game, Console, Animation, Animator, Sprite Packer, Sprite Editor, Frame Debug, Profiler, Timeline

posted @   yanghui01  阅读(307)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示