Почему список никогда не пустой и почему в него никогда не добавляются новые элементы? - PullRequest
0 голосов
/ 13 февраля 2020
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;

[CustomEditor(typeof(ObjectsReplace))]
public class ObjectsReplaceEditor : Editor
{
    private string addkey = "1";

    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        ObjectsReplace myTarget = (ObjectsReplace)target;

        if (GUILayout.Button("Add"))
        {
            addkey = GUILayout.TextField("1", addkey);
        }
    }
}

И

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObjectsReplace : MonoBehaviour
{
    public List<GameObject> objectsToReplace = new List<GameObject>();
}

Но в инспекторе я вижу старый список, который я создал ранее, и он никогда не добавляет новое текстовое поле с номером 1, или я хочу добавить новый элемент в список каждый раз, когда нажмите на добавить. Текстовое поле предназначено для тестирования.

List in inspector

1 Ответ

0 голосов
/ 13 февраля 2020
 if (GUILayout.Button("Add"))
        {
            addkey = GUILayout.TextField("1", addkey);
        }

В основном здесь происходит следующее: когда пользователь нажимает кнопку Add, для одного кадра инспектор отображает поле ввода текста со строкой 1, а затем

Я предполагаю, что вы хотите добавить новые элементы в свой список, в этом случае при обработке нажатия кнопки вам нужно будет на самом деле изменить массив, то есть:

myTarget.disappear.objectsToReplace.Add(new GameObject())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...