Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Unity Runtime Editor

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
26 Ноя 2018
Сообщения
57
Реакции
18
Всем привет ребята, делаю редактор и появились проблемы с полями компонентов(при их выводе для изменения).

Код:
Expand Collapse Copy
foreach (FieldInfo field in Type.GetType(this.CurrentComponentEditor.GetType().FullName).GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
    {
        this.fieldsPositionY += 20;
        GUI.Label(new Rect(5f, (float)this.fieldsPositionY, 500f, 50f), string.Concat(new string[]
        {
            field.Attributes.ToString(),
            " ",
            field.FieldType.Name,
            " ",
            field.Name,
            " ",
            field.GetValue(this.CurrentComponentEditor).ToString()
        }));
        this.SetNewValueField = GUI.TextField(new Rect(300f, (float)this.fieldsPositionY, 100f, 20f), this.SetNewValueField);
        if (GUI.Button(new Rect(400f, (float)this.fieldsPositionY, 50f, 20f), "Ok"))
        {
            field.SetValue(this.CurrentComponentEditor, Convert.ChangeType(111, field.FieldType));
        }
    }

У меня проблема с методом GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).
Почему-то он возвращает не все поля которые есть в классе.
А именно он возвращает поля на которых висит атрибут [HideInspector], и иногда в списке полей лежат приватные. Мне же нужно, вернуть все до единого поля класса, не подскажите компибаницию BindingFlags.Public, что бы совершить это.

Вторая проблема, я рисую для каждого выведенного поля GUI.TextField, но когда пишу в один из них, изменяются всё поля до единого.
Спасибо заранее за вашу помощь.
 
Это какая юнька?
GUI уже поддержки нет давно...
GUI.TextField изменяются сразу все, потому как им нужно присваивать разные переменные типа String (
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Назад
Сверху Снизу