2017-02-23 47 views
0

Я передаю массив с моего расширения SmartFoxServer в мою игру Unity3d, но мне сложно разобрать синтаксический анализ. Вот как я отправить его в своем расширении:Unity3d/SmartFoxServer Parse 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"); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^