踩坑:EditorUtility.DisplayCancelableProgressBar

在开发Unity工具时遇到EditorUtility.DisplayCancelableProgressBar控件在处理大量数据时导致界面卡死的问题。即使点击取消也无法关闭,只能强制退出Unity。经过研究发现,当进度达到接近100%时,通过判断并提前跳出循环可以避免这个问题。这是一个针对Unity编辑器内UI交互和性能优化的实践经验。
摘要由CSDN通过智能技术生成

在给美术写工具的时候,为了更加人性化就决定加个进度条

EditorUtility.DisplayCancelableProgressBar

就用了上面这个原生控件,具体参数 手册里都有,而且自带cancel按钮,点击后可以直接中断

如果是这么写的话

if (EditorUtility.DisplayCancelableProgressBar("若干参数"))

{ return ;
}

就是cancel后就直接停掉了,

但是问题就来了 ,会存在进度条卡在100%不动的情况,最离谱的是这个控件在前端卡住就算了,代码后面的逻辑竟然还能正常跑

 

这么一看也还行,但是存在一个问题就是这种卡住的情况下,不能关掉了,只能强关unity,很麻烦。

 

网上搜了一圈,没有解决办法,卡住原因是因为数据量过大的情况下,unity的这个EditorUtility.DisplayCancelableProgressBar控件会在快速的update下直接死掉。。。。

 

所以最后的解决办法就是 在即将100%之前 判断下直接跳出循环就好了。。。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值