我正在尝试将 2 个元素数组的列表放入可编写脚本的对象中。我终于设法避免了所有编译器问题,但我没有在检查器中填充任何内容。我想我应该把 SO 扔出窗外并创建一个 2D 数组。这是全班同学:
[SerializeField]
public static List<string[,]> list = new List<string[,]>();
目标:
我已经有一段时间没有使用 Unity 了,我只是想制作一个简单的数据容器。我错过了一些简单的事情吗?
它没有出现在检查器中有两个原因:
如果您需要在检查器中显示两个可见字符串的列表,我建议创建一个新对象来定义您要列出的内容。
例如,如果您想列出带有名称和描述的项目,那么您可以执行以下操作:
using System;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "New Test SO", menuName = "Test SO")]
public class TestSO : ScriptableObject
{
public List<Item> list = new List<Item>();
}
[Serializable]
public class Item
{
public string Name;
public string Description;
}
请注意
[Serializable]
类上方的 System
命名空间中的 Item
属性。这允许您的自定义类显示在检查器中以及在其他地方序列化。
在检查器中看起来像这样,有一个漂亮的小手柄来添加和删除项目:
我希望这能解决问题!