unet作为服务器不显示画面,UNet:无法生成服务器对象(不使用NetworkManager)
我'm playing around with Unity 5'的網(wǎng)絡(luò)HLAPI . I don't want to use the NetworkManager ,因?yàn)槲覜]有't want to pay for Unity'的多人游戲服務(wù)(Matchmaker和Relay服務(wù)器) .
當(dāng)客戶端連接到服務(wù)器時(shí),我正在嘗試在客戶端上生成播放器 . 我可以讓客戶端正確連接到服務(wù)器,但是客戶端上的產(chǎn)生失敗,并出現(xiàn)以下錯(cuò)誤:
Failed to spawn server object, assetId=b861a662c70615a40971e7bab10e4e14 netId=1
UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()
請(qǐng)注意,在服務(wù)器上,播放器對(duì)象正確生成 .
Minimal repro:
我在Unity 2D項(xiàng)目中,并將以下腳本附加到我的主攝像頭:
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.NetworkSystem;
public class MenuMinimalRepro : MonoBehaviour
{
private NetworkClient networkClient;
void OnGUI()
{
if (this.networkClient != null && this.networkClient.isConnected)
{
GUI.Label(new Rect(100, 25, 150, 25), "Running as Client");
}
else if (NetworkServer.active)
{
GUI.Label(new Rect(100, 25, 150, 25), "Running as Server");
}
else
{
if (GUI.Button(new Rect(100, 25, 150, 25), "Start as Client"))
{
this.StartClient();
}
if (GUI.Button(new Rect(100, 50, 150, 25), "Start as Server"))
{
this.StartServer();
}
}
}
public void StartServer()
{
NetworkServer.Listen(54321);
NetworkServer.RegisterHandler(MsgType.AddPlayer, OnAddPlayerServer);
}
public void StartClient()
{
this.networkClient = new NetworkClient();
this.networkClient.RegisterHandler(MsgType.Connect, OnConnectedClient);
this.networkClient.Connect("localhost", 54321);
}
// Connected handler for the client side
public void OnConnectedClient(NetworkMessage netMsg)
{
ClientScene.AddPlayer(this.networkClient.connection, 0);
}
// AddPlayer handler for the server side
public void OnAddPlayerServer(NetworkMessage netMsg)
{
AddPlayerMessage msg = netMsg.ReadMessage();
GameObject newPlayer = (GameObject)Instantiate(Resources.Load("Prefabs/Player"));
NetworkServer.AddPlayerForConnection(netMsg.conn, newPlayer, msg.playerControllerId);
}
}
我的Player對(duì)象是一個(gè)簡(jiǎn)單的精靈,我已經(jīng)使用NetworkIdentity組件(see my Prefab in the Inspector)制作了預(yù)制件 . 我的Player Prefab位于Resources文件夾中,因此我可以從代碼(see my Prefab in the Project View)輕松加載它 .
我啟動(dòng)游戲的后臺(tái)實(shí)例(使用Ctrl B)并將其作為服務(wù)器啟動(dòng),然后單擊Unity Editor中的“播放”按鈕并將該實(shí)例作為客戶端啟動(dòng) . 然后Unity報(bào)告我之前提到的錯(cuò)誤 .
有誰知道我可能做錯(cuò)了什么?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的unet作为服务器不显示画面,UNet:无法生成服务器对象(不使用NetworkManager)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pythonsearch结果_pytho
- 下一篇: AppScan api登录接口 post