Расширенный редактор Unity TextMeshPro при отключении - PullRequest
0 голосов
/ 07 января 2019

я пытаюсь решить очень особую проблему, может у кого-то из вас возникнет похожая проблема, я расширю класс TextMeshProUGUI из диспетчера пакетов Unity только для добавления простой строки дополнительного свойства для локализации с именем m_key для тех, кто будет использовать это GameObject нужно только поместить ключ для локализованной строки в редактор и проверить, как он выглядит как текст TMPro с локализованной строкой, хорошо, я скопирую весь пользовательский редактор TextMeshPro в новый класс редактора только для показа локализованного текста в редакторе единиц со следующим кодом функции OnInspectorGUI:

m_key = EditorGUILayout.TextField(new GUIContent("LOCALIZED KEY:"), localized_key.stringValue, GUILayout.Height(18), GUILayout.ExpandWidth(true));
localized_key.stringValue = m_key;
text_prop.stringValue = LanguageWizard.GetGameText(localized_key.stringValue);

Где m_key - это просто строковая переменная в классе редактора, а localized_key - из свойства m_key расширенного класса, и в этот момент он действительно работает хорошо, но проблема в том, что в редакторе Unity пытаются деактивировать игровой объект или его parent, родитель скрывает, TMPro скрывает, но свойство text все еще видно в редакторе, в то время как нормальное поведение редактора скрывает его, может быть, я немного поэкспериментирую с пользовательским редактором TMPro, но если кто-то испытал это, пожалуйста, помощь.

1 Ответ

0 голосов
/ 11 января 2019

После исследования кода мы с моей командой переходим к следующему сценарию, где я помещаю методы OnEnable и OnDisable для некоторого кода подписки и прочего, и мы замечаем, что этот класс расширен от класса TextMeshProUGUI, где эти методы унаследовано от базовых методов, и я забыл вызвать base.OnDisable и base.OnEnable, когда я пишу их и проверяю результаты в редакторе, текст обычно скрывается

protected override void OnEnable()
{
    base.OnEnable();
    //Custom Stuff
}

protected override void OnDisable()
{
    base.OnDisable();
    // Custom Stuff
}

Это работает в версии TextMeshPro 1.24, следующая версия 1.3 вызовет некоторые проблемы в классе пользовательских инспекторов

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