无法在检查器中显示数组项。统一

Cant display array items in the inspector. Unity

我想制作一个 class 数组并在检查器中查看所有这些 classes 项目。

我有 2 个脚本。 1 - 设置为预制件并要求包含 MonoBehaviour。 2 - 创建数组的脚本,但在检查器中,我只看到 Element0、Element1... 当我从第一个脚本中删除 MonoBehaviour 时,我能够在检查器中看到所有项目,但那样它不适用于预制件...

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;

想要显示包含所有 "LevelSetup" 字段(即 public)的数组,但是如果我离开 MonoBehaviour 并且它与预制件一起工作正常,它会显示仅包含 Element0、Element1 的数组, ETC。 谢谢!

当您放置一个继承自 MonoBehaviour 的字段时,Unity 的检查器需要一个具有 "Behaviour" 的对象,因此您不能在检查器中分配字段,因为它不被解释为常规字段。

例如,如果您将 Material 设置为一个字段,并且您想要从检查器更改颜色 属性。

public Material mat; //This is actually a class

在检查器中,您将只能分配一个 material,但您将无法访问 class 内部并更改颜色。