2017-08-18 133 views
0

所以我有一个问题。我有一个像地图一样的主场景。当我的角色离开场景并与某个物体发生碰撞时,我通常会加载另一个场景而无需加载屏幕。但现在我决定做一个加载屏幕。 “问题”是在我离开我的主场景后,我不得不加载加载屏幕,在加载屏幕后加载其他场景。是否有另一个制作加载屏幕,因为加载加载屏幕也需要时间加载?我是否需要加载加载另一个场景的加载场景?

+0

不,从技术上讲,您不需要“加载场景”。你可以在你的地图场景中处理第二个场景的异步加载。 – Hellium

+0

[LoadSceneAsync](https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html)可以帮助您,如果您仍然需要加载屏幕。 – ryeMoss

+0

@ryemoss因此,基本上你是说我应该在我的加载场景中加载我的第二个场景,或者我应该在我的第一个场景中加载我的加载屏幕? – KeyNavas

回答

1

工作流可能会因不同的人而有所不同。这里是我遵循的工作流程:

你必须有一个只有UI的主菜单场景,用于加载你的第一场比赛场景。之所以这样做,是为了确保您的应用非常快速地加载并且还可以通过Google Play和Appstore测试。

第一次加载应用程序后,您不需要再次加载该主菜单场景。你要做的是创建一个UI面板,其中TextImage组件显示加载场景的状态为AsyncOperation.progress。您可以了解更多关于加载场景here的信息。您可以使用gameObject.SetActive启用或禁用此UI面板。您还必须确保在添加DontDestroyOnLoad(gameObject);到新场景时,此UI GameObject不会破坏。

+0

所以基本上你的意思是当我加载一个新的地图/场景时,启用面板并在加载地图之后我禁用/使其不可见。你是否也在后台加载一些场景?为了访问加载的地图“更快”/你不必在最后加载它? – KeyNavas

+0

是的,您启用UI面板来显示加载状态。加载完成后,您将禁用面板,然后激活加载的场景。是的,您使用'SceneManager.LoadSceneAsync'在后台加载场景,以便您可以在屏幕上看到状态。 *“为了访问加载的地图”更快“/你不必在最后加载它?”*我不明白这个问题 – Programmer

+0

我的意思是,当你加载一个场景不在后台需要一些时间直到整个场景被加载。至少这是我加载场景时发生的情况。如果我在后台加载一个场景,场景是否会立即打开,或者我可以在什么时候进入场景? – KeyNavas