我試圖創建一個自定義玩家生成器,但一直遇到
"指定的演員表無效
嘗試在網上搜索,但所有結果都沒有用,所以希望這里有人可以幫助我。
問題行:
NetworkServer.AddPlayerForConnection(conn, playerobject);
....是發生錯誤。(以下為完整錯誤)
代碼:
public override void OnClientConnect(NetworkConnection conn)
{
var connection = conn;
connlist.Add(connection);
if (!clientLoadedScene)
{
if (!NetworkClient.ready) NetworkClient.Ready();
{
GameObject playerobject = (GameObject)Instantiate(Player, new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 0));
playerobject.GetComponent<PlayerManager>().PlayerName = nameplayer;
NetworkServer.AddPlayerForConnection(conn, playerobject);
Debug.Log(nameplayer " is spawned!");
}
}
base.OnClientConnect(conn);
}
錯誤滿:
InvalidCastException: 指定的強制轉換無效。Mirror.NetworkIdentity.SetClientOwner (Mirror.NetworkConnection conn) (at Assets/Mirror/Runtime/NetworkIdentity.cs:250) Mirror.NetworkServer.AddPlayerForConnection (Mirror.NetworkConnection conn, UnityEngine.GameObject player) (at Assets/Mirror/Runtime/NetworkServer .cs:617) NetManager.OnClientConnect (Mirror.NetworkConnection conn) (at Assets/Scripts/NetManager.cs:58) Mirror.NetworkManager.OnClientAuthenticated (Mirror.NetworkConnection conn) (at Assets/Mirror/Runtime/NetworkManager.cs:1158 ) Mirror.NetworkManager.OnClientConnectInternal() (at Assets/Mirror/Runtime/NetworkManager.cs:1142) Mirror.LocalConnectionToServer.Update() (at Assets/Mirror/Runtime/LocalConnections.cs:84) Mirror.NetworkClient.NetworkLateUpdate() (在 Assets/Mirror/Runtime/NetworkClient.cs:1249)Mirror.NetworkLoop。
uj5u.com熱心網友回復:
我不確定您在哪一行收到錯誤,但我記得該Instantiate()方法回傳 aGameObject因此您不需要強制轉換它,此外,var如果您打算,您不應該將您的連接存盤在串列中為了保持它,你修改后的代碼應該是這樣的:
public override void OnClientConnect(NetworkConnection conn)
{
connlist.Add(conn);
if (!clientLoadedScene)
{
if (!NetworkClient.ready) NetworkClient.Ready();
{
var playerobject = Instantiate(Player, new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 0));
playerobject.GetComponent<PlayerManager>().PlayerName = nameplayer;
NetworkServer.AddPlayerForConnection(conn, playerobject);
Debug.Log(nameplayer " is spawned!");
}
}
base.OnClientConnect(conn);
}
uj5u.com熱心網友回復:
我找到了一個解決方案,我將我的 Spawn 代碼移到了一個函式,即 OnServerAddPlayer 而不是 OnClientConnect 它修復了所有問題并且效果驚人!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/349296.html
下一篇:如何匹配另一個物件的旋轉增量?
