【发布时间】:2021-11-05 09:16:03
【问题描述】:
我试图创建一个自定义播放器生成器,但一直遇到
"指定的强制转换无效
尝试在网上搜索但所有结果都没有用,所以希望这里的人可以帮助我。
问题行:
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) (在 Assets/Mirror/Runtime/NetworkIdentity.cs:250) Mirror.NetworkServer.AddPlayerForConnection (Mirror.NetworkConnection conn, UnityEngine.GameObject 播放器) (在 Assets/Mirror/Runtime/NetworkServer.cs:617) NetManager.OnClientConnect (Mirror.NetworkConnection conn) (在 Assets/Scripts/NetManager.cs:58) Mirror.NetworkManager.OnClientAuthenticated (Mirror.NetworkConnection conn) (在 Assets/Mirror/Runtime/NetworkManager.cs:1158) Mirror.NetworkManager.OnClientConnectInternal () (在 Assets/Mirror/Runtime/NetworkManager.cs:1142) Mirror.LocalConnectionToServer.Update () (在 Assets/Mirror/Runtime/LocalConnections.cs:84) Mirror.NetworkClient.NetworkLateUpdate () (在 Assets/Mirror/Runtime/NetworkClient.cs:1249) Mirror.NetworkLoop.NetworkLateUpdate()(在 Assets/Mirror/Runtime/NetworkLoop.cs:189)
【问题讨论】:
标签: c# unity3d multiplayer