我正在尝试从服务器向客户端发送一个简单的字符串,反之亦然,但是即使我在服务器上调用该函数,也会出现此错误,但我不知道我的代码有什么问题,我不知道不知道我使用的是Unet的过时版本还是什么版本,但是目前我不知道该怎么办。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class Client : MonoBehaviour
{
void OnGUI()
{
Clase clase = new Clase();
clase.Servidor();
clase.Cliente();
}
}
public class Clase
{
public string IP = "127.0.0.1", RespuestaCliente, RespuestaServidor;
public int Port = 4444;
public void Servidor()
{
if (Network.peerType == NetworkPeerType.Disconnected)
{
if (GUI.Button(new Rect(100, 125, 100, 25), "Start Server"))
{
bool useNat = !Network.HavePublicAddress();
Network.InitializeServer(20, Port, useNat);
}
}
else
{
if (Network.peerType == NetworkPeerType.Server)
{
GUI.Label(new Rect(100, 100, 100, 25), "Server");
if (GUI.Button(new Rect(100, 125, 100, 25), "Mandar Mensaje"))
{
GameObject go1 = new GameObject();
MensajesServidor msg1 = go1.AddComponent<MensajesServidor>();
if (Network.isServer)
{
msg1.RpcClienteRecibio("Este es un mensaje del servidor");
}
else
{
Debug.Log("Estas intentando mandar información de manera erronea");
}
}
GUI.Label(new Rect(100, 150, 100, 25), "Connections " + Network.connections.Length);
GUI.Label(new Rect(100, 175, 600, 25), "Mensaje del Cliente: " + RespuestaServidor);
if (GUI.Button(new Rect(100, 200, 100, 25), "Logout"))
{
Network.Disconnect(250);
}
}
}
}
public void Cliente()
{
if (Network.peerType == NetworkPeerType.Disconnected)
{
if (GUI.Button(new Rect(100, 100, 100, 25), "Start Client"))
{
Network.Connect(IP, Port);
}
}
else
{
if (Network.peerType == NetworkPeerType.Client)
{
GUI.Label(new Rect(100, 100, 100, 25), "Client");
if (GUI.Button(new Rect(100, 125, 100, 25), "Mandar Mensaje"))
{
GameObject go2 = new GameObject();
MensajesCliente msg2 = go2.AddComponent<MensajesCliente>();
if (Network.isClient)
{
msg2.CmdMensajeDeCliente("Este es un mensaje del Cliente");
}
else
{
Debug.Log("Estas intentando mandar información de manera erronea");
}
}
GUI.Label(new Rect(100, 175, 600, 25), "Mensaje del Servidor: " + RespuestaCliente);
if (GUI.Button(new Rect(100, 150, 100, 25), "Logout"))
{
Network.Disconnect(250);
}
}
}
}
}
public class MensajesCliente : NetworkBehaviour
{
//Mensaje del Cliente
[Command]
public void CmdMensajeDeCliente(string mensaje)
{
ServidorRecibio(mensaje);
}
public void ServidorRecibio(string Mensaje2)
{
Clase cliente = new Clase();
cliente.RespuestaServidor = Mensaje2;
}
}
public class MensajesServidor : NetworkBehaviour
{
//Mensaje del Servidor
[ClientRpc]
public void RpcClienteRecibio(string Mensaje2)
{
MensajeDeServidor(Mensaje2);
}
public void MensajeDeServidor(string mensaje)
{
Clase servidor = new Clase();
servidor.RespuestaCliente = mensaje;
}
}