Я пытаюсь разработать онлайн-игру, в которой люди могут просто болтаться и общаться, но по какой-то причине куб клиента не отображается в игре сервера и наоборот, но сервер управляет клиентом и сервером. Вот код для обоих файлов:Проблемы с сетью - Клиент управления сервером
сети Сценарий:
using UnityEngine;
using System.Collections;
public class NetworkManager : MonoBehaviour
{
string registeredGameName = "Hangout Zone";
bool isRefreshing = false;
float refreshRequestLength = 3.0f;
HostData[] hostData;
private void StartServer()
{
Network.InitializeServer(16, 25002, false);
MasterServer.RegisterHost(registeredGameName, "Hangout Zone", "The place to chill with friends.");
}
void OnServerInitialized()
{
Debug.Log("Server has been initialized.");
}
void OnPlayerDisconnected(NetworkPlayer player)
{
Debug.Log("Player disconnected.");
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
void OnApplicationQuit()
{
if (Network.isServer)
{
Network.Disconnect(200);
MasterServer.UnregisterHost();
}
if (Network.isClient)
{
Network.Disconnect(200);
}
}
void OnMasterServerEvent(MasterServerEvent masterServerEvent)
{
if (masterServerEvent == MasterServerEvent.RegistrationSucceeded)
{
Debug.Log("Registration Successful.");
}
}
public IEnumerator RefreshHostList()
{
Debug.Log("Refreshing...");
MasterServer.RequestHostList(registeredGameName);
float timeStarted = Time.time;
float timeEnd = Time.time + refreshRequestLength;
while (Time.time < timeEnd)
{
hostData = MasterServer.PollHostList();
yield return new WaitForEndOfFrame();
}
if (hostData == null || hostData.Length == 0)
{
Debug.Log("No active servers have been found.");
}
else
{
Debug.Log(hostData.Length + " have been found.");
}
}
private void SpawnPlayer()
{
Debug.Log("Spawning player...");
Network.Instantiate(Resources.Load("Prefabs/Block"), new Vector3(0f, 2.5f, 0f), Quaternion.identity, 0);
}
public void OnGUI()
{
if (Network.isServer)
{
GUILayout.Label("Running as a server.");
}
else if (Network.isClient)
{
GUILayout.Label("Running as a client.");
}
if (Network.isClient)
{
if (GUI.Button(new Rect(25f, 25f, 150f, 30f), "Spawn"))
{
SpawnPlayer();
}
}
if (Network.isClient || Network.isServer)
{
return;
}
if (GUI.Button(new Rect(25f, 25f, 150f, 30f), "Start New Server"))
{
StartServer();
}
if (GUI.Button(new Rect(25f, 65f, 150f, 30f), "Refresh Server List"))
{
StartCoroutine("RefreshHostList");
}
if (hostData != null)
{
for (int i = 0; i < hostData.Length; i++)
{
if (GUI.Button(new Rect(Screen.width/2, 65f + (30f * i), 300f, 30f), hostData[i].gameName))
{
Network.Connect(hostData[i]);
}
}
}
}
}
Сценарий управления: (Это JavaScript)
#pragma strict
function Update() {
if (Input.GetKey(KeyCode.W))
{
transform.position.z += 0.03;
}
if (Input.GetKey(KeyCode.S))
{
transform.position.z -= 0.03;
}
if (Input.GetKey(KeyCode.A))
{
transform.position.x -= 0.03;
}
if (Input.GetKey(KeyCode.D))
{
transform.position.x += 0.03;
}
}
Добавлен ли сборщик плеера в NetworkManager? – user3071284