C# 在网络上实例化两个不同的player对象

C# 在网络上实例化两个不同的player对象,c#,unity3d,multiplayer,unity3d-unet,C#,Unity3d,Multiplayer,Unity3d Unet,我在网络多人游戏中为玩家使用两个不同的对象。unity将实例化两种不同类型的游戏对象,但问题是只有一个属性。我如何设置两个不同的对象,即使我试图在运行时更改它,但它给了我错误 未能生成服务器对象, assetId=4d293c8e162f3874b982baadd71153d2 netId=1 UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate() 未能生成服务器对象, assetId=4d293c8e162f3874b982baadd

我在网络多人游戏中为玩家使用两个不同的对象。unity将实例化两种不同类型的游戏对象,但问题是只有一个属性。我如何设置两个不同的对象,即使我试图在运行时更改它,但它给了我错误

未能生成服务器对象, assetId=4d293c8e162f3874b982baadd71153d2 netId=1 UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

未能生成服务器对象, assetId=4d293c8e162f3874b982baadd71153d2 netId=7 UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()


在UNetManager的文档中:

如果您想自定义玩家游戏对象的创建方式,可以覆盖该虚拟功能。此代码显示了默认实现的示例:

您可以将代码中的预置更改为要生成的预置


希望这能帮助您解决选择哪个预置的问题。

OnserverAddPlayer事件没有执行,这会允许实例化不同的玩家对象吗?事实上,您是如何解决这个问题的,@MuhammadFaizanKhan?!
public virtual void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
{
    var player = (GameObject)GameObject.Instantiate(playerPrefab, playerSpawnPos, Quaternion.identity);
    NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}