我从我的服务器收到一个JSON数组到我的Unity游戏客户端。该数组包含不同类型的游戏对象,换句话说,在一个数组中有不同的类型的对象。
{someArrayOfDifferentObjects:[{name:"bla", element:"ITEM"},{name:"blu",element:"ITEM"},{name:"blu",health:0, element:"ENEMY"}]}
我尝试完成的是在for循环中为目标对象获取正确的对象类型:
private IEnumerator WaitForRequest(WWW www)
{
yield return www;
ResponseObject gameObjects= JsonUtility.FromJson<ResponseObject >(www.text); // from server
object[] base = gameObjects.someArrayOfDifferentObjects;
foreach (object obj in base )
{
ParentObject parent = (ParentObject ) obj;
if (parent.element == "ITEM")
{
Item item = obj as Item; // throws NullReferenceException: Object reference not set to an instance of an object
} else { // other elements}
}
}
{
[Serializable]
public class ParentObject
{
public string element;
}
}
{
[Serializable]
public class Item : ParentObject
{
public string name;
}
}
它尝试了一些事情,并在互联网上寻找解决方案,但无法找到任何与c#统一起作用的东西。 我知道这个问题可能过于复杂,但此刻我有点陷入困境。
anybode可以快速提示我正确的方向吗?
问候,
Codehai