我如何在 Unity JS 上创建回调函数
how can i make a callback function on Unity JS
我决定用 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' is not a member of 'Object'.
当我试图查看 "data"
的类型时
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;
我发现回调函数和javascript
一样
并通过添加
解决了问题
import SimpleJSON;
然后
_socket.On("chat", function(param) {
var data = JSON.Parse(param.ToString());
print(data['id']);
print(data['msg']);
我决定用 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' is not a member of 'Object'.
当我试图查看 "data"
的类型时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;
我发现回调函数和javascript
一样并通过添加
解决了问题import SimpleJSON;
然后
_socket.On("chat", function(param) {
var data = JSON.Parse(param.ToString());
print(data['id']);
print(data['msg']);