无法在检查器中显示阵列项目。统一

时间:2019-05-02 08:14:58

标签: c# unity3d inspector

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

我有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;

enter image description here enter image description here

想显示带有所有“ LevelSetup”字段(公共的)的数组,但是如果我离开MonoBehaviour,并且它与预制件配合得很好,它将显示仅包含Element0,Element1等的数组。 谢谢!

1 个答案:

答案 0 :(得分:0)

当您放置从MonoBehaviour继承的字段时,Unity的检查器会期望一个对象具有“行为”,因此您不能在检查器中分配这些字段,因为不会被解释为常规字段。

例如,如果您将“材质”设置为字段,并且想要通过检查器更改color属性。

public Material mat; //This is actually a class

在检查器中,您只能分配材料,但不能在班级内部访问和更改颜色。