2017-07-27 42 views
0

我決定做一個遊戲,團結+ Node.js的我怎麼能做出統一JS回調函數

https://github.com/floatinghotpot/socket.io-unity

嘗試使用這個庫unityscript

這裏是我的代碼,到目前爲止

#pragma strict 

import System.Collections.Generic; 
import UnityEngine.UI; 
import Quobject.SocketIoClientDotNet.Client; 

public class SocketIOScript extends MonoBehaviour { 

    var _socket : Socket; 

    function Start() { 
     if(!_socket) { 
      _socket = IO.Socket("http://localhost:3000"); 
      _socket.On("connect", function(asd) { 
       _socket.Emit("chat", "hello"); 
      }); 
      _socket.On("chat", function(data) { 
       print(data.id); 
      }); 
     } 
    } 
} 

,但此行

  _socket.On("chat", function(data) { 
       print(data.id); 
      }); 

給出錯誤

資產/ SocketIOScript.js(24,52):BCE0019: 'ID' 不是 '物件' 的部件。

,當我想看看什麼是「數據」的類型

print(typeof data); 

它說

Newtonsoft.Json.Linq.JObject 

我不知道該怎麼辦。據我昨天全拿了,所以我決定在這裏提出

這裏順便說一句的是什麼,我要完成的C#版本(從socket.io-團結演示)

socket.On ("chat", (data) => { 
     string str = data.ToString(); 

     ChatData chat = JsonConvert.DeserializeObject<ChatData> (str); 
     string strChatLog = "user#" + chat.id + ": " + chat.msg; 
+0

'print(data [「id」])'有效嗎?如果不是,當你執行print(data.toString())'時,你會得到什麼? –

回答

0

我已經意識到回調函數是相同的,如JavaScript

,並通過加入

import SimpleJSON; 

然後

01解決了這個問題
相關問題