Unity_Editor扩展开发高效ScrollView

Posted avi9111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity_Editor扩展开发高效ScrollView相关的知识,希望对你有一定的参考价值。

下载了一个非一搬的FindRef工具,

即使是官方的Assetbundlemanager也是卡的可以

但这个工具即使加载整个项目的资源+场景+text,加载所有的资源居然一点不卡

所以稍微研究一下“别人家的孩子”是如何写ScrollView的

GUI的一些关键代码:

有些小伙伴或者只知道UGUI等一些游戏框架

而下面这些古老的GUI方法和代码,是在现代先进的UI框架出现的产物

所有代码必须在OnGUI()或者OnInspectorUI()内执行

那时候的人真蠢啊,封装UI都不会

其实不是这样的,当年的人设计成这样主要是当年的硬件环境所决定的

也可以说是一个纯代码的结构了

古老的GUI方法

改颜色:

Color o = GUI.color;
GUI.color = FR2_Setting.RowColor;
// GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture);
GUI.DrawTexture(new Rect(rect.x - FR2_Setting.TreeIndent, rect.y, rect.width, rect.height),
							EditorGUIUtility.whiteTexture);
GUI.color = o;

ScrollView高效绘制的关键

只绘制当前高度内的内容,其他则不绘制

假设有1W行数据,实际上只会绘制15行数据

if (_isOpen && rect.y <= maxY) //draw children
{
    for (var i = 0; i < children.Count; i++)
    {
        children[i].Draw(ref index, ref rect, minY, maxY);
        if (rect.y > maxY)
        {
            break;
        }
    }
}

以上是关于Unity_Editor扩展开发高效ScrollView的主要内容,如果未能解决你的问题,请参考以下文章

记一次UnityEditor编辑器扩展开发参考BuildReportTools插件自定义高效列表

PHP的另一个高效缓存扩展:Yac

PyTorch为何如此高效好用?

如何高效开发jmeter自定义函数

高效的Java开发工具汇总,一个都不能少!

五步掌握用VSCode进行高效Python开发