So I’m working on my own network class using .net sockets but I can’t send an error message to the main menu when the socket couldn’t connect.
Here is the main menu code to set the error message:
public void showMessage(string str){
GUIStyle style = new GUIStyle();
style.normal.textColor = Color.red;
GUI.Label(new Rect((Screen.width /2) - 100, (Screen.height / 2) - 140, 200, 25), str, style);
}
Which is called from the network class…
try{
Socket sock = (Socket) ar.AsyncState;
sock.EndConnect(ar);
buffer = new byte[sock.ReceiveBufferSize];
sock.BeginReceive(buffer, 0, sock.ReceiveBufferSize, 0 , new AsyncCallback(ReadCallBack), sock);
}catch{
mainMenu.showMessage("Couldn't reach Server");
}
and the network class is defined from the main menu as an entirely new class from onGUI…
network net = new network(new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp), this);
But I get this error:
GetStyleStatePtr can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don’t use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
I get the error but I don’t know how to fix it. Any help?