Unity Server не выполняет команды клиентом
Я работаю над очень простой / базовой клиент-серверной сетевой программой, основой будущей игры, которую я надеюсь создать. Теперь клиентская программа / проект успешно соединяется с "серверной программой / проектом" (оба полностью разделены). Однако, когда речь идет о том, чтобы клиент отправил запрос / команду на сервер. Ну, он не отправляет команду на сервер, он выполняет ее на клиенте.
Я прочитал об изменении наследования "Monodevelop" на "NetworkBehaviour", что я и сделал, и это привело к ошибке по типу;
Command xxx was sent to the server
...Debug.logerror(object
Таким образом, я, кажется, прошел половину пути, он якобы отправил команду на сервер, но сервер ничего не сделал с этим. Я не знаю почему.
Ниже приведены сравнительно короткие программы, которые у меня есть для моего сервера и клиента, и они практически одинаковы, но если кто-нибудь сможет мне помочь, я буду очень признателен, поскольку мой университетский курс на самом деле не занимался сетевым программированием. много;
Код сервера
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class server : MonoBehaviour
{
public string IP = "127.0.0.1";
public int port = 25001;
public int prevConns = 0;
private int currConns = 0;
public virtual void OnServerReady (NetworkConnection conn)
{
NetworkServer.SetClientReady (conn);
}
void OnGUI ()
{
if (Network.peerType == NetworkPeerType.Disconnected) {
if (GUI.Button (new Rect (100, 100, 100, 25), "Start Client")) {
Network.Connect (IP, port);
}
if (GUI.Button (new Rect (100, 125, 100, 25), "Start Server")) {
Network.InitializeServer (20, port, false);
}
} else {
//CLIENT - NOT NEEDED
if (Network.peerType == NetworkPeerType.Client) {
GUI.Label (new Rect (100, 100, 100, 25), "Client");
if (GUI.Button (new Rect (100, 125, 100, 25), "Disconnect")) {
Network.Disconnect (250);
}
}
if (Network.peerType == NetworkPeerType.Server) {
currConns = Network.connections.Length;
GUI.Label (new Rect (100, 100, 100, 25), "Server");
GUI.Label (new Rect (100, 125, 100, 25), "Connections: " + currConns);
if (prevConns != currConns) {
if (prevConns < currConns) {
Debug.Log ("NEW CONNECTION");
prevConns++;
} else if (prevConns > currConns) {
Debug.Log ("Lost CONNECTION");
prevConns--;
}
}
if (GUI.Button (new Rect (100, 15, 100, 25), "Shutdown")) {
Network.Disconnect (250);
}
}
}
}
}
Код клиента
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class connection : MonoBehaviour
{
public string IP = "127.0.0.1";
public int port = 25001;
public GameObject player;
public virtual void OnClientConnect (NetworkConnection conn)
{
ClientScene.Ready (conn);
}
void OnGUI ()
{
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), "Disconnect")) {
Network.Disconnect (250);
}
if (GUI.Button (new Rect (100, 150, 100, 25), "Send Cmd")) {
CmdSendCommand ();
}
}
}
}
[Command]
void CmdSendCommand ()
{
NetworkBehaviour.print ("HELLO");
}
}