У меня есть класс, который не расширяет собственный класс, и, следовательно, переменные этого типа не отображаются в инспекторе.
Если бы я расширял указанный класс нативным, переменные этогоТип будет отображаться в инспекторе, но на самом деле я не смог бы установить для них что-либо, потому что они содержатся в ScriptableObject и, очевидно, эти два типа не подходят друг другу.
Я пытался написать CustomPropertyDrawer, но он по-прежнему не показывает переменную. Это мой код (в C #):
using UnityEditor;
using UnityEngine;
[CustomPropertyDrawer(typeof(AScriptableObjectClassThatShouldDisplayTheVariableInItsInspector))]
public class ShowVariable : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
base.OnGUI(position, property, label);
EditorGUI.BeginProperty(position, label, property);
Rect rect = new Rect(position.x, position.y, 50, position.height);
EditorGUI.PropertyField(rect, property.FindPropertyRelative("nameOfVariable"));
EditorGUI.EndProperty();
}
}
Это класс, который содержит переменную класса, который должен отображаться:
[System.Serializable]
public class Syntax : ScriptableObject
{
public GameLevelFunction nameOfVariable;
}
И это в основном, как мой классчто должно отображаться в инспекторе выглядит так:
[System.Serializable]
public abstract class GameLevelFunction
{
//literally two methods
}