unity2d加载大世界

时间:2018-03-24 00:13:03

标签: c# unity3d 2d

我正在使用统一引擎来打造一个开放的世界" (我使用它松散,因为它大致相同)MMO自上而下的射击游戏。我创造了世界,我有一个非常快的系统,只能加载你所站立的世界的一部分,但它仍然需要5或6分钟才能从播放按钮加载。基本上我所做的就是将一块巨大的瓷砖网格分成8x8个部分,然后分成12x12个区域。我想要一种方法来加载世界(比如从位图图像或其他东西),但我还希望能够在编辑器中编辑和更改世界。任何以前做过这个的人都可以帮我弄清楚该做什么吗?

1 个答案:

答案 0 :(得分:0)

就在我的头顶之下,我还没有在已发布的产品中使用它,但你可以将大型场景分成多个场景,你说的是12x12区域的8x8瓦片。

我建议制作一个基础场景,加载玩家在世界的位置,基于他加载场景的位置和他周围的几个场景,当他导航世界或到达你确定的地方时在他的范围内,他可以看到你加载下一个场景的其他项目。这就是它的样子:

OOOOOOOOOOOO
OOOOOOOOOOOO
OOOOOOOOOOOO
OOOOOOOOOOOO
OOOOOOOOOOOO
OOOOOOXXOOOO
OOOOOXXXOOOO
OOOOOOXOOOOO
OOOOOOOOOOOO
OOOOOOOOOOOO
OOOOOOOOOOOO
OOOOOOOOOOOO

每个O代表一个场景,X是加载的场景。你如何同时加载多个场景?如果你看一下SceneManager.LoadScene的重载方法,有一种方法可以接收LoadSceneMode传递LoadSceneMode.Additive将一个新场景加载到你的世界中。没有卸载前一个场景。因此,根据您的游戏密集程度,您可以将周围区域加载到播放器并在后台加载它们。另一个选项是保存当前加载的场景。

下一期,能够在编辑器中编辑和更改世界。在Unity Editor内部,您可以同时打开多个场景,并移动和重新定位这些场景中的每个项目。然而,可怕的是,将新的GameObject添加到特定场景中,您必须将该场景设置为活动场景。

以下是多场景编辑文档的链接: https://docs.unity3d.com/Manual/MultiSceneEditing.html

SceneManager.LoadScene上的文档: https://docs.unity3d.com/2018.1/Documentation/ScriptReference/SceneManagement.SceneManager.LoadScene.html

LoadSceneMode.Additive上的文档: https://docs.unity3d.com/2018.1/Documentation/ScriptReference/SceneManagement.LoadSceneMode.Additive.html