hey im making a multiplayer game in unity using tcp protocol im using a new thread with loop for checking if there is message to receive
Thread ctThread = new Thread(getMessage);
ctThread.Start();
private void getMessage()
{
while (true)
{
int buffSize = 0;
byte[] inStream = new byte[10025];
buffSize = mySocket.ReceiveBufferSize;
theStream.Read(inStream, 0, buffSize);
try
{
string returndata = System.Text.Encoding.ASCII.GetString(inStream);
checkMessage(returndata);
}
catch { }
}
}
every thing is working fine but when i recive message from the server to change the active canvas or something like this:
cnv.SetActive(false);
i get this error:
SetActive can only be called from the main thread.
and not just with SetActive almost with everything i get the same error