1

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

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

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

4

1 回答 1

1

在 UNetManager 的文档中:

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

public virtual void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
{
    var player = (GameObject)GameObject.Instantiate(playerPrefab, playerSpawnPos, Quaternion.identity);
    NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}

您可以将该代码中的预制件更改为您想要生成的预制件。

希望这可以帮助您解决选择哪个预制件的问题。

于 2016-10-27T13:16:41.313 回答