Как создать скрипт Custom Editor, который показывает не родные классы в инспекторе в Unity? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть класс, который не расширяет собственный класс, и, следовательно, переменные этого типа не отображаются в инспекторе.

Если бы я расширял указанный класс нативным, переменные этогоТип будет отображаться в инспекторе, но на самом деле я не смог бы установить для них что-либо, потому что они содержатся в 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...