Unity sciprtableobject 仅包含 2 个元素数组的列表

问题描述 投票:0回答:1

我正在尝试将 2 个元素数组的列表放入可编写脚本的对象中。我终于设法避免了所有编译器问题,但我没有在检查器中填充任何内容。我想我应该把 SO 扔出窗外并创建一个 2D 数组。这是全班同学:

[SerializeField]
public static List<string[,]> list = new List<string[,]>();

目标:

  • 列表:
  1. 绳子,绳子
  2. 绳子,绳子
  3. 然后...

我已经有一段时间没有使用 Unity 了,我只是想制作一个简单的数据容器。我错过了一些简单的事情吗?

arrays list unity-game-engine scriptable-object
1个回答
0
投票

它没有出现在检查器中有两个原因:

  1. 您无法在检查器中看到静态值。
  2. 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
属性。这允许您的自定义类显示在检查器中以及在其他地方序列化。

在检查器中看起来像这样,有一个漂亮的小手柄来添加和删除项目:

我希望这能解决问题!

© www.soinside.com 2019 - 2024. All rights reserved.