Заранее прошу прощения за беспорядок, который вы собираетесь прочесть, потому что я не уверен на 100%, что я ищу.
Я создал всю систему пользовательского интерфейса, которая автоматически получает список свойств из различных скриптов / компонентов в GameObjects (Unity) и создает для них подходящий вариант ввода пользовательского интерфейса (например, float получает одну строку, Vector3 получает 3 строки , цвет получает что-то еще и т. д.).
Что входит в создание полей ввода пользовательского интерфейса - это Компонент (который мы хотим рассмотреть), в то время как отдельные созданные входы пользовательского интерфейса хранят это Имя компонента и свойства. Поэтому, когда ввод изменяется в одном из полей ввода, он устанавливает SetValue для свойства компонента. Теперь я также создал вариант, в котором мы указываем класс свойства и в основном перечисляем свойства свойства, поэтому входные данные пользовательского интерфейса хранят компонент, имя свойства и имя дочернего объекта и изменяют свойства как таковые. Все это хорошо работает.
Итак, теперь я ударил кирпичную стену списками. Я хотел бы рассматривать отдельные элементы списка как свойства, чтобы я мог передать их в мою существующую ранее схему пользовательского интерфейса.
tl; dr Обрабатывает ли List <> свои отдельные элементы как свойства, поля или зависит от ситуации? Как я могу получить эти свойства, поля или их соответствующие имена из этого списка, чтобы использовать их в моем беспорядке системы пользовательского интерфейса? 0 работа для меня означает обработку отдельных элементов Списка как свойств.
----------------------------
EDIT ----------------------------
Снова прошу прощения за этот беспорядок вопроса. Это смесь запутанной теории и описания существующей ситуации, которую я пытаюсь включить в свой уже существующий проект (который слишком сложен, чтобы его можно было легко привести к примеру).
Если кто-то понял, о чем я спрашиваю, то самым простым решением было создать свойство, которое перед перечислением было бы приравнено к элементу списка.
Пример выглядит примерно так:
public List<MyCustomClass> myCustomList;
[Listable("ForEdit")]
public myCustomClass myCustomPropertyForEdit
{
get;
set;
}
И перед тем, как удалить свойства класса myCustomPropertyForEdit (myCustomClass), я бы просто сделал:
myCustomPropertyForEdit = myCustomList[0]; //or whatever index is in question
Затем позже я бы сделал размышление о «myCustomPropertyForEdit» вместо myCustomList. Я очень сомневаюсь, что это когда-нибудь кому-нибудь поможет, потому что это больше касается того, как я создавал методы для перечисления свойств в моем пользовательском интерфейсе, но на всякий случай.