Это текущий размер элементов списка 3 в Инспекторе:

При изменении размера, например, на 4, дублируется последнийпредмет, но я хочу, чтобы он добавил новый пустой предмет беседы: есть два предмета из запертой комнаты:

Вот как я объявил Список:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEditorInternal;
public class ConversationTrigger : MonoBehaviour
{
public List<Conversation> conversations = new List<Conversation>();
Что я пробовал до сих пор:
Создан скрипт редактора с кнопкой:
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
[CustomEditor(typeof(ConversationTrigger))]
public class ConversationTriggerEditor : Editor
{
private SerializedProperty _conversations;
private void OnEnable()
{
_conversations = serializedObject.FindProperty("conversations");
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if(GUILayout.Button("Add new item"))
{
}
}
}
Но теперь у меня две проблемы:
Кнопка отменяет действие двух других кнопок, которые у меня уже были: «Загрузить и сохранить», и я хочу, чтобы эта кнопка «Добавить новый элемент» всегда находилась перед холстом и после последнего элемента.
Как увеличить значение List внутри события кнопки в сценарии редактора?

Сценарий, как сейчас:
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
[CustomEditor(typeof(ConversationTrigger))]
public class ConversationTriggerEditor : Editor
{
private ConversationTrigger conversationtrigger;
private void OnEnable()
{
conversationtrigger = FindObjectOfType<ConversationTrigger>();
}
public override void OnInspectorGUI()
{
DrawDefaultInspector();
if(GUI.Button(new Rect(0.2f,0.3f,0,0), "Add new item"))
{
conversationtrigger.conversations.Add(new Conversation());
}
}
}
Я изменил кнопку на GUI. Кнопка вместо GUILayout.Button, чтобы установить положение кнопки.
Но кнопка теперь исчезла, а также две другие кнопки из моего первого верхнего скриншота. Загрузка и сохранение также исчезли.
Это скрипт для кнопок загрузки и сохранения:
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(ConversationTrigger))]
public class SaveConversationsButton : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
ConversationTrigger dialoguetrigger = (ConversationTrigger)target;
if (GUILayout.Button("Save Conversations"))
{
dialoguetrigger.SaveConversations();
}
if(GUILayout.Button("Load Conversations"))
{
Undo.RecordObject(dialoguetrigger, "Loaded conversations from JSON");
dialoguetrigger.LoadConversations();
}
}
}