Encounter / Assets / Scripts / ScriptableObjects / ClassSO.cs
ClassSO.cs
Raw
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

#if UNITY_EDITOR
using UnityEditor;
#endif

[CreateAssetMenu(fileName = "New Class", menuName = "Config/New Class")]
public class ClassSO : ScriptableObject
{
    public string ClassName;
    public Sprite ClassSprite;
    public string[] ClassBonuses;

    public GameObject SkillTree;
}

#if UNITY_EDITOR
[CustomEditor(typeof(ClassSO))]
public class ClassSOEditor : Editor
{
    private ClassSO container;

    private void OnEnable()
    {
        container = target as ClassSO;
    }

    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        EditorGUILayout.PropertyField(serializedObject.FindProperty("ClassName"));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("ClassSprite"));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("ClassBonuses"));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("SkillTree"));

        serializedObject.ApplyModifiedProperties();
    }
}
#endif