多人游戏与玩家在同一地图的不同版本上

时间:2018-02-16 06:57:27

标签: c# unity3d multiplayer

我制作/想要制作一个子弹地狱游戏,其中基本上有两个玩家,每个玩家拥有他们自己相同的地图竞赛副本以获得高分。每当玩家死亡时游戏就会结束。

我所有这些都在多人游戏中工作,但我的方法看起来有些笨拙,所以我想知道是否有更好的方法来实现这一目标。

起初我只使用Unity的网络管理器,在我的播放器Start()函数中,我检查了是否(!isLocal),如果是,我将gameObject设置为false。这很有效,但就像我说的那样,感觉有点笨拙。

代码示例:

var filename = $('input[type=file]').val()

接下来,我搬到了团结大厅。这是事情变得非常棘手的地方。现在在主持人上,游戏加载得很好,但在客户端上,只创建了一个游戏对象,并且它被设置为禁用,这让我相信它是“敌人”。或不是本地玩家对象。

我慢慢想通了,原因是将敌方游戏对象设置为false。如果我把它保持为真,两个玩家都会在两个屏幕上产生。我现在的解决方案是不禁用敌方玩家对象,而是禁用它上面的每个组件,这样就不会妨碍它。

这再次感觉非常黑客,并且可能会导致问题。这真的是最好的选择,还是我错过了一些明显的东西?

代码示例:

if (!isLocalPlayer) {
       gameObject.SetActive(false);
       return;
    }

提前致谢!对不起,这太长了,希望这不是一件苦差事。

1 个答案:

答案 0 :(得分:1)

制作一个空白的场景,除了得分经理外,你还需要传输什么。

在项目文件夹中将另一个场景作为资源,这是地图所在的位置。

当玩家加入时,让他们与得分经理一起加入现场。

如果他们也是本地玩家,他们应该加载地图场景。

这样,两个玩家都将在同一场景中,同时拥有自己的地图实例。

您可以异步和附加地加载场景,这对您的情况非常理想。