private void OnAddQuestActionType(object data)
        {
            QuestEditorWindow.ApplyModifiedPropertiesFromSelectedQuestSerializedObject();
            var type        = data as Type;
            var questAction = ScriptableObjectUtility.CreateScriptableObject(type);

            questAction.name = type.Name;
            m_selectedAction = questAction as QuestAction;
            m_actionEditor   = null;
            if (QuestEditorWindow.selectedQuest != null)
            {
                AssetUtility.AddToAsset(questAction, QuestEditorWindow.selectedQuest);
                m_selectedAction.SetRuntimeReferences(QuestEditorWindow.selectedQuest, null);
            }
            QuestEditorWindow.UpdateSelectedQuestSerializedObject();
            m_list.serializedProperty.arraySize++;
            m_list.index = m_list.serializedProperty.arraySize - 1;
            m_list.serializedProperty.GetArrayElementAtIndex(m_list.serializedProperty.arraySize - 1).objectReferenceValue = questAction;
            m_list.serializedProperty.serializedObject.ApplyModifiedProperties();
            QuestEditorWindow.ApplyModifiedPropertiesFromSelectedQuestSerializedObject();
            AssetDatabase.SaveAssets();
        }