【问题标题】:How to spawn a different prefab with Mirror in Unity?如何在 Unity 中使用 Mirror 生成不同的预制件?
【发布时间】:2021-02-03 01:13:23
【问题描述】:

我正在尝试为我的学校论文创建一个 LAN 游戏,但我似乎无法弄清楚如何为使用 Unity 中的 Mirror 连接到服务器的每个玩家生成不同的预制件。我可以创建房间,但每次玩家加入时,他都会拥有与服务器相同的预制件,我希望它有所不同。

这是我的网络管理器的设置。我附加了一个名为 Char1 的脚本,其代码来自 here

我能够创建一个房间并使用 Parrelsync 同步所有内容,但无法为要连接的每个播放器设置不同的预制件。您需要任何信息以帮助我,请告诉我,我会尽快回复。

【问题讨论】:

  • @Fattie 你能详细说明一下吗? UNet 已过时,DOTS 包仍处于预览阶段。

标签: unity3d multiplayer mirror


【解决方案1】:

由于您的问题没有得到答案:

在您的自定义 NetworkingManager 类(顺便说一下,它应该从 NetworkManager 继承)的顶部,您应该创建一个公共 GameObject 变量。当您的代码编译时,它将在您的编辑器中显示为您命名的任何内容。之后,您可以将其设置为您制作的预制对象。

之后,只需在代码中将要实例化的 GameObject 设置为该对象即可。

public class MyNetworkingManager : NetworkManager
{

public GameObject PlayerPrefab2;


public override void OnStartServer()
{
    base.OnStartServer();
    NetworkServer.RegisterHandler<CharacterCreatorMessage>(OnCreateCharacter);
}

public override void OnClientConnect(NetworkConnection conn)
{
    base.OnClientConnect(conn);

    //send the message here
    //the message should be defined above this class in a NetworkMessage
    CharacterCreatorMessage characterMessage = new CharacterCreatorMessage
    {
        //Character info here
    };

    conn.Send(characterMessage);

}

void OnCreateCharacter(NetworkConnection conn, CharacterCreatorMessage message)
{

    if (message.character.Equals("player2"))
    {
        GameObject gameobject = Instantiate(PlayerPrefab2);
        Player2 player = gameobject.GetComponent<Player2>();
        NetworkServer.AddPlayerForConnection(conn, gameobject);
    } else if (message.character.Equals("player1"))
    {
        GameObject gameobject = Instantiate(playerPrefab);
        Player player = gameobject.GetComponent<Player>();
        NetworkServer.AddPlayerForConnection(conn, gameobject);
    }



}


}

https://mirror-networking.gitbook.io/docs/guides/gameobjects/custom-character-spawning 是这里基类概念的一个很好的参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    相关资源
    最近更新 更多