Untitled

mail@pastecode.io avatar
unknown
csharp
2 years ago
1.9 kB
4
Indexable
Never

using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(QSO_Base))]

public class QSO_Editor : Editor
{
    SerializedProperty qname;
    SerializedProperty qdesc;
    SerializedProperty qtype;
    SerializedProperty qgoal;

    GUIContent qname_desc = new GUIContent("Nome da quest");
    GUIContent qdesc_desc = new GUIContent("Descrição da quest");
    GUIContent qgoal_desc_item = new GUIContent("Item a ser coletado");
    GUIContent qgoal_desc_mons = new GUIContent("Monstro a ser derrotado");
    GUIContent qgoal_desc2 = new GUIContent("Quantidade");

    string[] qtype_options = { "Selecionar", "1 - Coleta", "2 - Movimentação", "3 - Derrotar" };
    int[] qtype_selection = { 0, 1, 2, 3 };
    int qtype_selected = 0;

    void OnEnable()
    {
        qname = serializedObject.FindProperty("questName");
        qdesc = serializedObject.FindProperty("questDesc");
        qtype = serializedObject.FindProperty("questType");
        qgoal = serializedObject.FindProperty("goals");
    }

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

        EditorGUILayout.PropertyField(qname, qname_desc);
        EditorGUILayout.LabelField("");
        EditorGUILayout.PropertyField(qdesc, qdesc_desc);
        EditorGUILayout.LabelField("");
        qtype_selected = EditorGUILayout.IntPopup("Tipo de quest", qtype_selected, qtype_options, qtype_selection);
        qtype.intValue = qtype_selected;
        EditorGUILayout.LabelField("");

        switch (qtype_selected)
        {
            case 1:     //Coleta
                EditorGUILayout.PropertyField(qgoal, qgoal_desc_item);
                break;

            case 2:     //Movimentação
                break;

            case 3:     //Derrotar
                break;

            default:
                break;
        }

        serializedObject.ApplyModifiedProperties();
    }
}