unity关于字典的问题

字典建立如何被其他物体调用
我本来想法是 建立一个ScriptableObject 来保存字典
但是我发现 ScriptableObject 不支持字典 不可以保存字典
那现在我用的办法就是在增加1个物体在程序上 然后物体保存脚本 来保存这个字典 如果调用就需要先查询这个物体 在调用字典
但是我感觉这样非常不正确并且没有解耦 使用也非常麻烦
所以我想问下 字典应该保存什么地方。然后被不同对象调用,还能解耦

你的字典可以在任何类上创建呀,如果你想要外部访问,声明为public;
访问分几种情况:

静态类:
public static class A
{
public static Dictionary<int, string> Dic = new Dictionary<int, string>();
}
外部调用:A.Dic;

普通类:
public class A
{
public  Dictionary<int, string> Dic = new Dictionary<int, string>();
}
外部调用:
A a=new A(){}
a.Dic;

单例类:
public class A
{
public static A intance;
public Dictionary<int, string> Dic = new Dictionary<int, string>();

private void Awake(){}

外部调用:A.Dic;
}

有全局脚本,不要把脚本挂在物体上。
你的class本身要声明为public static,字典也声明为public static

序列化的话可以用ISerializationCallbackReceiver,去搜一下这个
然后用单例来获取相关的数据就可以了

可以 .单例一个用来存储全局变量的静态脚本