日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

unet作为服务器不显示画面,UNet:无法生成服务器对象(不使用NetworkManager)

發布時間:2024/8/23 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unet作为服务器不显示画面,UNet:无法生成服务器对象(不使用NetworkManager) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我'm playing around with Unity 5'的網絡HLAPI . I don't want to use the NetworkManager ,因為我沒有't want to pay for Unity'的多人游戲服務(Matchmaker和Relay服務器) .

當客戶端連接到服務器時,我正在嘗試在客戶端上生成播放器 . 我可以讓客戶端正確連接到服務器,但是客戶端上的產生失敗,并出現以下錯誤:

Failed to spawn server object, assetId=b861a662c70615a40971e7bab10e4e14 netId=1

UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

請注意,在服務器上,播放器對象正確生成 .

Minimal repro:

我在Unity 2D項目中,并將以下腳本附加到我的主攝像頭:

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對象是一個簡單的精靈,我已經使用NetworkIdentity組件(see my Prefab in the Inspector)制作了預制件 . 我的Player Prefab位于Resources文件夾中,因此我可以從代碼(see my Prefab in the Project View)輕松加載它 .

我啟動游戲的后臺實例(使用Ctrl B)并將其作為服務器啟動,然后單擊Unity Editor中的“播放”按鈕并將該實例作為客戶端啟動 . 然后Unity報告我之前提到的錯誤 .

有誰知道我可能做錯了什么?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的unet作为服务器不显示画面,UNet:无法生成服务器对象(不使用NetworkManager)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。