我决定用unity + node.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);
});
给出了错误
Assets / SocketIOScript.js(24,52):BCE0019:'id'不是'Object'的成员。
当我试图查看“数据”的类型时
print(typeof data);
它说
Newtonsoft.Json.Linq.JObject
我不知道该怎么办。我昨天花了整整一个时间,所以我决定在这里问一下
顺便说一下这是我想要完成的c#版本(来自socket.io-unity演示)
socket.On ("chat", (data) => {
string str = data.ToString();
ChatData chat = JsonConvert.DeserializeObject<ChatData> (str);
string strChatLog = "user#" + chat.id + ": " + chat.msg;
答案 0 :(得分:0)
我意识到回调函数与javascript相同
并通过添加
解决了这个问题import SimpleJSON;
然后
_socket.On("chat", function(param) {
var data = JSON.Parse(param.ToString());
print(data['id']);
print(data['msg']);