Страница 1 из 1

Переименование элементов массива в кастомном поле

СообщениеДобавлено: 03 июл 2020, 06:35
1max1
Есть допустим класс:

Синтаксис:
Используется csharp
[Serializable]
public class A
{
    public string str;
}

Есть для него CustomPropertyDrawer:

Синтаксис:
Используется csharp
    [CustomPropertyDrawer(typeof(A), true)]
    public class A_PropertyDrawer : PropertyDrawer
    {
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            var str = property.FindPropertyRelative("str");

            str.stringValue = EditorGUI.TextField(position, label, str.stringValue);
        }
    }

Вот так он рисует массив, при этом переименовывая элемент в такое же название как строка. Это фича такая? Как избавиться от этой дряни?

Изображение

Re: Переименование элементов массива в кастомном поле

СообщениеДобавлено: 03 июл 2020, 06:39
1max1
Сам спросил, сам и отвечаю, может кому-то надо будет. Сверху перед строковой переменной нужно добавить любую другую нестроковую переменную.
Ох уж эти юнитеки...

Синтаксис:
Используется csharp
[Serializable]
public class A
{
    [SerializeField] int костыль;
    public string str;
}

Re: Переименование элементов массива в кастомном поле

СообщениеДобавлено: 03 июл 2020, 13:17
Tolking
:) Это очень удобная фича. Ты просто не понял зачем она...

Re: Переименование элементов массива в кастомном поле

СообщениеДобавлено: 03 июл 2020, 19:26
1max1
Я понимаю что это типа идентификатора, но у меня туда попадают большие строки и выглядит это не красиво обрезанным.