简体   繁体   English

Unity3d / SmartFoxServer解析ISFSArray

[英]Unity3d/SmartFoxServer Parse ISFSArray

I am passing an array from my SmartFoxServer extension to my Unity3d game but I am having a hard time parsing. 我正在将数组从SmartFoxServer扩展传递到Unity3d游戏,但是解析起来很困难。 Here is how I send it in my extension: 这是我在扩展程序中发送的方式:

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()); 

In my Unity3d C# code, I do the following: 在我的Unity3d C#代码中,执行以下操作:

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

But, I am not sure how to parse the array for each string. 但是,我不确定如何为每个字符串解析数组。 I've tried something like this: 我已经尝试过这样的事情:

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

But this gives an error; 但是,这会产生错误。 Any tips on how to do this: 有关此操作的任何提示:

thanks 谢谢

Don't put your strings in sfsArray , put them in one sfsObject : 不要将字符串放在sfsArray中,而应将它们放在一个sfsObject中:

Server : 服务器:

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

Client : 客户:

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");
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM