Как правильно нарисовать эскиз в окне редактора Unity? - PullRequest
0 голосов
/ 17 мая 2019

Фон

В настоящее время я создаю собственный плагин редактора Unity, который позволяет пользователям изменять выбранные изображения.

Плагин имеет небольшую область предварительного просмотра, на которую пользователь может посмотреть перед экспортом полученного изображения на диск.

MyCustomEditorPlugin : EditorWindow
{
    Texture2D selected_texture;

    ...

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

Проблема

К сожалению, непосредственное рисование выбранного изображения при каждом вызове OnGUI вызывает значительное отставание.

Кто-нибудь знает какие-либо передовые методики рисования изображений для предварительного просмотра в пользовательских окнах редактора Unity (или способы решения этой проблемы)?

1 Ответ

0 голосов
/ 17 мая 2019

Что-то вроде этого, поэтому он пропускает шаг рисования, пока он не будет установлен в 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++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...