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(); }