【发布时间】:2021-08-14 13:55:01
【问题描述】:
我有这两个类:
public class SpawnStringClass{
public List<PlayerSpawn> playerSpawn;
}
public class PlayerSpawn
{
public string PlayerName;
public float posx;
public float posz;
}
我创建了一个引用第一类的变量:
SpawnStringClass SpawnClass = new SpawnStringClass(){playerSpawn = new List<PlayerSpawn>()};
var item = new PlayerSpawn
{
PlayerName = player.NickName.ToString(),
posx = SpawnX,
posz = SpawnZ
};
SpawnClass.playerSpawn.Add(item);
现在,当我尝试将带有列表的 Spawn 字符串类转换为 json 时,它不起作用。
SpawnString = JsonUtility.ToJson(SpawnClass);
Debug.Log(SpawnString);
有人知道为什么吗?
这些类在主要的单声道行为类之外,并且声明了变量 player.nickname、SpawnX 和 SpawnZ。
提前致谢!
【问题讨论】:
-
请提供minimal reproducible example。您当前的问题并未证明您正在谈论的问题。
-
这就是我所能提供的,为什么不能重现?有类的类声明,并在类中添加一个列表元素。
-
如何重现? I've tried
-
您的代码看起来正确。请提供您尝试验证行为的方法。您的验证似乎是错误的,因此无法用您给定的示例重现。
-
docs say: " 你传入的对象必须由序列化程序支持:它必须是 MonoBehaviour、ScriptableObject 或应用了 Serializable 属性的普通类/结构。您要包含的字段类型必须由序列化程序支持;不支持的字段将被忽略,私有字段、静态字段和应用了 NonSerialized 属性的字段也会被忽略。” 我不熟悉这个但也许尝试添加
[Serializable]属性?