EditorApplication.ExecuteMenuItem ("Assets/Sync MonoDevelop Project");
Проблема заключается в том, что выполнение моего класса начинается еще до того, как была произведена инициализация интерфейса редактора. В итоге вместо синхронизации получаю вывод в консоль, мол, такого пункта в меню не существует.
Вопрос, есть ли способы отследить полноценную загрузку интерфейса?
На данный момент проблему решил костылями с таймером EditorApplication.timeSinceStartup , вроде работает, но хотелось что чтобы по-честному.
Синтаксис:
Используется csharp
using UnityEditor;
[InitializeOnLoad]
class SyncOnStart
{
static bool done = false;
static SyncOnStart ()
{
if (!done) EditorApplication.update += Update;
}
static void Update ()
{
if (EditorApplication.timeSinceStartup >= 5 && EditorApplication.timeSinceStartup < 10) {
EditorApplication.ExecuteMenuItem ("Assets/Sync MonoDevelop Project");
done = true;
}
}
}
[InitializeOnLoad]
class SyncOnStart
{
static bool done = false;
static SyncOnStart ()
{
if (!done) EditorApplication.update += Update;
}
static void Update ()
{
if (EditorApplication.timeSinceStartup >= 5 && EditorApplication.timeSinceStartup < 10) {
EditorApplication.ExecuteMenuItem ("Assets/Sync MonoDevelop Project");
done = true;
}
}
}
ПС пробовал обрабатывать эксепшены, гнать по циклу до тех пор, пока интерфейс не прогрузится, но, видимо, это не лучший способ, здесь надо бы знать список всех эксепшенов хотя бы.
Есть идеи?