Показать сообщение отдельно
Старый 21.04.2012, 19:00   #889
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

а потом достать ссылку и проверить ее
А черт! Тип ссылки никак не проверишь. typeof(property.objectReferenceValue) конечно не работает.

Разве SerializedProperty.type возвращает например строку PPtr<$Block>. Только не понятно с чем такое сравнивать надо.

наверно сую я свой нос туда куда не надо)
Хотел сделать скрипт карты, а в нем ссылки на тайлы земли, травы и др. И чтобы в эти ссылки можно было записать только объекты из tileset'а, который тоже с этом скрипте.
На каждую переменную делать вручную поле будет не удобно т.к. часто придется изменять и редактор скрипта(

Декомпилировал класс Editor. Вот так рисуется инспектор
internal bool DoDrawDefaultInspector()
{
    EditorGUI.BeginChangeCheck();
    this.serializedObject.Update();
    SerializedProperty iterator = this.serializedObject.GetIterator();
    for (bool flag = true; iterator.NextVisible(flag); flag = false)
    {
        EditorGUILayout.PropertyField(iterator, true, new GUILayoutOption[0]);
    }
    this.serializedObject.ApplyModifiedProperties();
    return EditorGUI.EndChangeCheck();
}
А дальше настоящий дремучий лес. Но ясно, что моя идея не реализуем, если конечно не переписать GUI.

Последний раз редактировалось WISHMASTER35, 21.04.2012 в 23:09.
(Offline)
 
Ответить с цитированием