首页 > 其他分享 >【Unity TIL】7. 手动刷新资源

【Unity TIL】7. 手动刷新资源

时间:2023-01-09 01:11:45浏览次数:61  
标签:EditorApplication 手动 window unity TIL 编译 Unity 刷新

背景

最近的项目,Unity 版本是 2020.3,电脑是 mac,不清楚是哪个的原因,unity 经常崩溃。代码敲着敲着就崩溃,关闭了运行时编译代码还是崩,后来就直接关了 AutoRefrash,崩溃的问题暂时是没有了(之前在 win 上用 2018 从来没有这种情况)。

需求

每次进来手动 Command-R 一下,unity 总是会停上一小会,然后编译开始转圈,有时不清楚到底是没有修改,还是正在刷新,操作几下 unity,有崩了,所以想在刷新后,让 unity 显示自己在干嘛。

解决方案

做一个编辑器扩展,在执行后,开一个 EditorWindow,调用 AssetDatabase.Refresh,然后在编译完成前,显示在干嘛。

using UnityEditor;
using UnityEngine;

public class ManualRefresh : EditorWindow 
{
    [MenuItem("Tools/Manual Refresh %&r", false, 0)]
    public static void Open()
    {
        var window = GetWindow<ManualRefresh>();
        window.titleContent = new GUIContent("手动刷新");
        window.minSize = new Vector2(200, 50);
        window.maxSize = window.minSize;

        if (EditorApplication.isPlaying) {
            EditorApplication.isPlaying = false;
        }

        AssetDatabase.Refresh();
        Debug.Log("开始刷新资源");
    }

    private void OnGUI()
    {
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        if (EditorUtility.scriptCompilationFailed)
        {
            Debug.Log("编译错误");
            Close();
            return;
        }

        if (EditorApplication.isCompiling)
        {
            EditorGUILayout.LabelField("正在编译");
            return;
        }
        
        Close();
    }
}

参考链接

标签:EditorApplication,手动,window,unity,TIL,编译,Unity,刷新
From: https://www.cnblogs.com/fcnaud/p/17035863.html

相关文章

  • [UnityAI]行为树的中断机制
    参考链接:https://www.cnblogs.com/01zxs/p/9863715.htmlhttps://blog.csdn.net/AcmHonor/article/details/123234763https://blog.csdn.net/u012632851/article/details......
  • Unity 2D入门基础教程
    http://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started,作者:ChristopherLaPollo,由Xiaoke翻译,如果用以前版本的Unity做2D游戏,虽然能做,但是......
  • layui中的倒计时,util.countdown
    layui.use(['layer','util'],function(){varlayer=layui.layer,util=layui.util;//弹框倒计时操作layer.open({type:1,title:'处理中.....',......
  • 【Python】SystemError: tile cannot extend outside image:【PIL Image crop()】
    #图片裁剪,需要设置边缘间距【left,upper,right,lower】image_5=image.crop(box=(1000,1000,1000,1000))image_5.show()出现错误SystemError:tilecannotextendo......
  • 【Unity TIL】6. 如何判断两条线段是否相交
    AABB碰撞检测,也就是轴对齐碰撞检测,用平行于x,y轴的矩形表示物体。如何判断两个矩形是否相撞,可以通过分别判断x,y轴上的线段是否相交。假设线段分别为(s1,e1),(s2,e2),判......
  • 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
    --痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v3.5.0)发布过去9个月了,这一次痞子衡为大家带来了版本升级v4.0.0,这个版本主要有两个重要更新需要跟大家......
  • Unity初始界面设计与人物移动代码
    初始界面设计的比较简洁,只有三个按键,开始游戏,设置,退出,一张背景。本来想整一个玩家自定义按键,但是觉得太麻烦且没必要。做到现在的感受就是,遇到不会的地方,网上的教程五花......
  • 点击获取Cesium中加载的3DTile模型的属性信息
    1.添加鼠标点击事件//鼠标单击左键事件viewer.screenSpaceEventHandler.setInputAction(functiononMouseClick(click){//自己需要写逻辑的地方......
  • Reptile
    Chapter1chapute1.requests1.1安装pipinstallrequests  #爬虫1.2使用获取html代码importrequestsresponse=requests.get("https://www.autob......
  • Unity URP管线如何实现屏幕后处理
    URP管线可扩展的自己的RendererFeature,这里写了一个屏幕后处理的demo,首先shader如下:1Shader"MyURP/Kerry/PostProcess/URPFeature_PostProcessDemo"2{3Pro......