You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity ScriptableObject中二维字符串列表无法在Inspector显示的问题排查

解决Unity ScriptableObject Inspector无显示问题及数据容器优化方案

问题根源

你的代码里有两个导致Inspector不显示内容的核心问题:

  1. static字段无法被Unity序列化:即使加了[SerializeField],Unity的序列化系统会直接忽略static修饰的字段,所以Inspector里根本看不到这个List。
  2. 多维数组的序列化支持有限:string[,]这类二维数组本身在Unity Inspector里的兼容性就很差,嵌套在List里后更无法被正确识别和渲染。

最优解决方案:自定义可序列化类

针对你“存储多组双字符串数据”的需求,最适合的方式是用自定义可序列化类替代二维数组,配合非static的List,既能被Unity正常序列化,又能在Inspector里直观编辑。

完整代码示例

using UnityEngine;
using System.Collections.Generic;

// 右键菜单创建该ScriptableObject实例
[CreateAssetMenu(fileName = "StringPairData", menuName = "Data/String Pair Collection")]
public class StringPairCollection : ScriptableObject
{
    // 定义存储双字符串的可序列化类
    [System.Serializable]
    public class StringPair
    {
        public string first;
        public string second;
    }

    // 存储多组双字符串的列表(非static)
    public List<StringPair> stringPairs = new List<StringPair>();
}

使用步骤

  1. 把上述代码保存为StringPairCollection.cs文件;
  2. 在Unity编辑器里右键,选择Data -> String Pair Collection,创建一个该ScriptableObject的实例;
  3. 选中创建的实例,就能在Inspector里看到stringPairs列表,点击+就能添加新的双字符串组,直接编辑两个字符串内容。

额外提醒

ScriptableObject本身是用于存储数据的资源文件,不需要用static字段——每个ScriptableObject实例都是独立的资源,直接引用实例即可访问其中的数据。

内容的提问来源于stack exchange,提问作者maertsoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:04:52