Определить, работает ли [ExecuteAlways] MonoBehavior во время сохранения проекта Unity3D - PullRequest
1 голос
/ 06 мая 2020

У нас есть проект Unity3D, в котором были скрипты режима редактирования / воспроизведения, помеченные атрибутом [ExecuteAlways], который помогает нам в работе UI / UX, автоматически изменяя свойства прикрепленных GameObject.

Наша проблема в том, что эти скрипты вызываются каждый раз при загрузке / сохранении проекта, а это означает, что каждый раз, когда разработчик открывает проект или сохраняет несвязанный файл, все затронутые нами префабы / игровые объекты повторно сериализуются Unity, вызывая большой «спам» из ненужных изменений в системе управления версиями.

Мы попытались обойти это, определив, находимся ли мы в режиме редактора и сериализуемые значения не меняются, но проблема в том, что мы не может определить, сохраняем ли мы:

  • Application.isEditor кажется ложным во время сохранения
  • UNITY_EDITOR кажется не определенным
  • несмотря на Visual Studio подключена к Unity, ни одна из точек останова не достигнута.
  • Debug.Log() вызовы, похоже, не выполняются во время сохранения

Есть ли способ каким-то образом определить, наш [ExecuteAlways] поведение запускается во время сохранения?

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