我目前正在构建一个自定义的Unity编辑器插件,该插件允许用户修改选定的图像。
该插件具有一个小的预览区域,在将生成的图像导出到磁盘之前,用户可以查看该预览区域。
MyCustomEditorPlugin : EditorWindow
{
Texture2D selected_texture;
...
public void OnGUI()
{
GUI.DrawTexture(some_rect, selected_texture);
}
}
不幸的是,每次调用OnGUI
时直接绘制所选图像会导致严重的延迟。
在自定义Unity编辑器窗口上绘制预览图像时,有人知道任何最佳做法吗(又名解决此问题的方法)?
答案 0 :(得分:0)
类似这样的事情,因此它跳过绘制步骤,直到被其他东西设置为true为止。
MyCustomEditorPlugin : EditorWindow
{
Texture2D selected_texture;
bool changesMade = false;
...
public void OnGUI()
{
if(changesMade) {
GUI.DrawTexture(some_rect, selected_texture);
}
}
}
使用计数器限制绘图调用次数的其他想法:
MyCustomEditorPlugin : EditorWindow
{
Texture2D selected_texture;
int functionCount = 0;
...
public void OnGUI()
{
if(functionCount > 20) {
GUI.DrawTexture(some_rect, selected_texture);
functionCount = 0;
}
functionCount++;
}
}