Не могу отобразить элементы массива в инспекторе. Единство - PullRequest
0 голосов
/ 02 мая 2019

Я хочу создать массив классов и увидеть все эти элементы классов в инспекторе.

У меня есть 2 сценария. 1-set для prefab и требует включения MonoBehaviour. 2 - скрипт, в котором я создаю массив, но в инспекторе я вижу только Element0, Element1 ... Когда я удаляю MonoBehaviour из 1-го сценария, я могу видеть все элементы в инспекторе, но таким образом он не работает с префабом ...

1-

[System.Serializable]
public class LevelSetup : MonoBehaviour
{

    public TextMeshProUGUI levelName;
    public Image levelImage;
    public bool locked;
    public GameObject Description;
    public string Text;


}

2-

public class LevelSpawn : MonoBehaviour
{
    public LevelSetup[] levels;

enter image description here enter image description here

Хочу, чтобы отображался массив со всеми полями "LevelSetup" (которые являются общедоступными), но если я оставляю MonoBehaviour и он отлично работает с префабом, он отображает массив только с Element0, Element1 и т. Д. Спасибо!

1 Ответ

0 голосов
/ 02 мая 2019

Когда вы помещаете поле, которое унаследовано от MonoBehaviour, инспектор Unity ожидает объект, который имеет «Поведение», поэтому вы не можете назначить поля в инспекторе, поскольку он не интерпретируется как обычное поле.

Например, если вы задали Материал в качестве поля и хотите изменить свойство цвета из инспектора.

public Material mat; //This is actually a class

В инспекторе вы сможете назначить материал, но не сможете получить доступ к классу и изменить цвет.

...