我有一个关于 UnloadLevel 和 LoadLevelAdditive 的问题
例如我有以下场景: - 1级 - 2级 - 加载场景
当 level1 完成后,我使用 Application.LoadLevelAdditive(loadingscene);显示加载场景和level1场景! 加载场景动画完成后,我想显示 level2 而不是 level1,但保留加载场景。在加载场景中的第二个加载动画之后,我想删除加载场景。
现在我想知道以下步骤是否正确
if (level1done)
{
Application.LoadLevelAdditive(loadingscene)
}
播放加载动画
if(loadinganimationdone)
{
Application.UnloadLevel(level1);
Application.LoadLevelAdditive(level2);
}
播放第二个加载动画
if(2ndloadinganimationdone)
{
Application.UnloadLevel(loadingscene);
}
仅加载场景级别2即可玩游戏!
谢谢
最佳答案
你的逻辑是正确的。但是,为了更快一点的转换,我会使用 LoadLevelAdditiveAsync .
LoadLevelAdditiveAsync(和 LoadLevelAsync )方法在后台线程中加载关卡。您需要的是将 AsyncOperation 的 allowedSceneActivation 设置为 false - 加载完成后不启动级别(allowSceneActivation 默认情况下为 true)。完成动画后,将allowSceneActivation 设置为true。如果关卡准备就绪,它将立即启动(而不是像现在一样开始加载关卡)。
但是这种方法有一个小缺陷 - Unity 5.3 有一个单独的类来处理关卡加载 - SceneManager 。因此,如果您需要更新游戏,您应该检查一下。
关于unity-game-engine - LoadLevelAdditive 和 UnloadLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34283410/