EditorUtility.OpenFilePanel выполняется дважды - PullRequest
0 голосов
/ 28 августа 2018

Я хочу открыть OBJ-файл в Unity с помощью C # во время выполнения, когда я нажимаю L. Однако диалоговое окно файла всегда открывается дважды. После того, как я выбрал первый файл, я получаю новый диалог. Какой бы файл я ни выбрал первый и второй раз, оба файла открываются и отображаются. У меня есть:

void Update ()
{
    if (Input.GetKeyDown(KeyCode.L)) {
        LoadObj();
        //StartCoroutine(ExecuteAfterTime(5));
    }
}
IEnumerator ExecuteAfterTime(float time)
{
    yield return new WaitForSeconds(time);
}
void LoadObj()
{
    string path = EditorUtility.OpenFilePanel("Load scan file", "", "obj");
    \\Open the file and display it
}

Я пытался:

  • Добавить время (см. Прокомментированный код выше) - не работает
  • Добавить логическое значение, которое позволяет выполнять LoadObj() только при открытии предыдущего файла - не работает
  • Добавлено EditorUtility.OpenFilePanel() до или после yield return new WaitForSeconds(time) - в последнем случае задержка составляет 5 секунд, но она все равно открывается дважды в обоих случаях.

Я искал другие решения, но больше ничего не нашел. Я работаю на компьютере с Windows и использую Unity 2018. Цель - открыть один файл за раз, но должна быть возможность открыть другой файл, скажем, через несколько минут. Есть идеи, как предотвратить повторное открытие диалога?

1 Ответ

0 голосов
/ 28 августа 2018

Как предложил @Eshan Mohammadi, я проверил, был ли у меня только один экземпляр кода. Я удалил весь файл, создал новый и добавил его в свой GameObject. Однако только тогда я заметил, что этот конкретный GameObject скопирован, в том числе, конечно, и код. Итак, я изменил способ копирования GameObject и решения проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...