我正在开发一个我希望使用socketIO的Unity项目。我想要一个简单地向我的服务器发送套接字的方法。示例:当我单击它发出的东西时的按钮。
我的代码是:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SocketIO;
public class SocketIOScript : MonoBehaviour {
private void Awake() {
print ("awake");
}
public SocketIOComponent socket;
void Start() {
StartCoroutine (ConnectToServer ());
socket.On ("USER_CONNECT", OnUserConnect);
}
//this works
IEnumerator ConnectToServer() {
yield return new WaitForSeconds (0.5f);
socket.Emit ("USER_CONNECT");
}
//When I call on this from a button etc, the socket gives an NullException
public void logIn() {
socket.Emit("something");
}
public void OnUserConnect(SocketIOEvent socketIOEvent) {
print ("USER_CONNECT returned");
}
}
USER_CONNECT套接字有效,我确认在我的服务器上并做出响应。但是当我调用LogIn方法时,我得到了这个异常: NullReferenceException:未将对象引用设置为对象的实例 SocketIOScript.logIn()(在Assets / SocketIOScript.cs:27)
有人可以解释为什么我的套接字值突然为空并且如何修复它? 谢谢!