Определите, будет ли свойство, рассматриваемое из UnityEngine.Component, отображаться на панели редактора редактора? - PullRequest
0 голосов
/ 14 апреля 2019

Я пишу программу (на самом деле, целый набор утилит) для выгрузки всей иерархии объектов сцены Unity в XML (для создания проектной документации, а не для сохранения или передачи объектов).Одна проблема поставила меня в тупик.

Учитывая объект UnityEngine.Component componentObject, я могу получить его поля и свойства с помощью самоанализа:

FieldInfo[] fi = componentObject.GetType().GetFields();
PropertyInfo[] pi = componentObject.GetType().GetProperties();

Суть в том, что многие свойствакоторые возвращаются GetProperties (), на самом деле не являются свойствами, которые можно изменить на панели инспектора (например, некоторые из них могут отображаться только при выборе определенного параметра в раскрывающемся списке ... и в настоящее время он не выбрано, поэтому эти параметры не будут видны).

Я бы хотел иметь возможность определить, является ли данное свойство тем, которое можно редактировать с помощью панели «Инспектор» в редакторе, и пропуститьлюбое свойство, которое НЕ БУДЕТ отображаться на панели Инспектора.

Итак ... учитывая:

  • массив объектов PropertyInfo,
  • , полученных из UnityEngine.Компонент с помощью самоанализа,
  • , связанный с включенным GameObject в иерархии сцены,

... как определить, будет ли заданное свойство активироватьсяy быть видимым и редактируемым на панели инспектора, если родительский объект GameObject компонента был выбран в списке иерархии?

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