2017-02-23 77 views
0

我从我的SmartFoxServer扩展传递数组到我的Unity3d游戏,但我有一个困难的时间解析。这是我如何把它在我的分机:Unity3d/SmartFoxServer解析ISFSArray

SFSObject resObj = new SFSObject(); 
ISFSArray myArray= new SFSArray(); 

myArray.addUtfString("some String"); 
myArray.addUtfString("another string"); 
myArray.addUtfString("more string"); 

resObj.putSFSArray("myArray", myArray); 
send("mySentData", resObj, gameExt.getGameRoom().getUserList()); 

在我Unity3d C#代码,我做了以下内容:

ISFSArray myNewArray= dataObject.GetSFSArray("myArray"); 

但是,我不知道如何解析每个字符串数组。我试过这样的事情:

for (int i = 0; i <= myNewArray.Size(); i++) 
{ 
    String w = cardsDealt[0]; 
} 

但是,这给出了一个错误;如何做到这一点的任何提示:

感谢

回答

0

不要把你的字符串sfsArray,把它们放在一个sfsObject:

服务器:

ISFSObject resObj = new SFSObject(); 
resObj.putUtfString("name1",value1); 
resObj.putUtfString("name2",value2); 
resObj.putUtfString("name3",value3); 
send("mySentData", resObj, gameExt.getGameRoom().getUserList()); 

客户:

private void onExtensionResponse(BaseEvent evt) 
{ 
    string cmd = evt.Params["cmd"].ToString(); 
    if(cmd == "mySentData") 
    { 
     ISFSObject dataObject= evt.Params["params"] as ISFSObject; 

     string str1 = dataObject.GetUtfString("name1"); 
     string str2 = dataObject.GetUtfString("name2"); 
     string str3 = dataObject.GetUtfString("name3"); 
    } 
}