C# 统一编辑器GUI文本大小限制

C# 统一编辑器GUI文本大小限制,c#,unity3d,unity-editor,C#,Unity3d,Unity Editor,我正在为Unity开发一些工具(不是游戏,只是编辑器插件,因此一切都发生在编辑器窗口中)。其中一个工具必须包括文本数据文件的编辑器,该编辑器可能非常长 Unity有一个众所周知的问题:出于某种原因,即使在编辑器中,文本也是使用多边形绘制的,每个字母有四个顶点,并且每个对象的顶点限制为65535,因此文本中只能有16383个字符 在“查看模式”中,这很容易解决:我将非常长的字符串按换行符分开,并将每个字符串放入自己的EditorGUI.TextArea 但是,在编辑模式下,必须这样做: strin

我正在为Unity开发一些工具(不是游戏,只是编辑器插件,因此一切都发生在
编辑器窗口
中)。其中一个工具必须包括文本数据文件的编辑器,该编辑器可能非常长

Unity有一个众所周知的问题:出于某种原因,即使在编辑器中,文本也是使用多边形绘制的,每个字母有四个顶点,并且每个对象的顶点限制为65535,因此文本中只能有16383个字符

在“查看模式”中,这很容易解决:我将非常长的字符串按换行符分开,并将每个字符串放入自己的
EditorGUI.TextArea

但是,在编辑模式下,必须这样做:

string myText=“超过16383个字符”;
void OnGUI()
{
myText=EditorGUI.TextArea(myText);
}
因此,即使我将文本分成块(例如,分成页面),也会有混乱:无法控制光标位置、准确的开始和结束键入等等。文本将被剪切到意外的位置,部分单词将在页面之间来回移动,并在过程中成倍增加

现在,我只是赶上极限,停止输入到位(它可以在单词的中间),并显示一个信息,如“你已经超过了极限,请继续编辑任何外部编辑器”。但这显然不是很酷


因此,问题是:如何在
EditorWindow
中编辑很长的文本?

我在
EditorGUILayout.TextArea
中有80.000个字符,它工作得很好-显示长文本似乎甚至不是问题-不起作用的是选择
16335
第个字符以外的任何字符。。。尽管单击并设置插入符号仍然有效,但它没有显示^^^,因为Unity没有成为一个好的文本编辑器的雄心,我实际上更愿意推荐这样的做法:使用外部编辑器,因为它们在大多数情况下更为高效和强大。我在
EditorGUILayout.TextArea
中有80.000个字符,它可以工作精细-显示长文本似乎不是问题-不起作用的是选择超出
16335
th字符的任何内容。。。尽管单击并设置插入符号仍然有效,但它不会显示^^^,因为Unity并不想成为一个好的文本编辑器,我实际上更愿意推荐这样的做法:使用外部编辑器,因为它们在大多数情况下更高效、更强大。