如何在Unity编辑器窗口中正确绘制预览缩略图?

时间:2019-05-16 21:08:32

标签: unity3d

背景

我目前正在构建一个自定义的Unity编辑器插件,该插件允许用户修改选定的图像。

该插件具有一个小的预览区域,在将生成的图像导出到磁盘之前,用户可以查看该预览区域。

MyCustomEditorPlugin : EditorWindow
{
    Texture2D selected_texture;

    ...

    public void OnGUI()
    {
        GUI.DrawTexture(some_rect, selected_texture);
    }
}

问题

不幸的是,每次调用OnGUI时直接绘制所选图像会导致严重的延迟。

在自定义Unity编辑器窗口上绘制预览图像时,有人知道任何最佳做法吗(又名解决此问题的方法)?

1 个答案:

答案 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++;
    }
}