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的主要内容,如果未能解决你的问题,请参考以下文章