unity-game-engine - LoadLevelAdditive 和 UnloadLevel

标签 unity-game-engine unityscript

我有一个关于 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/

相关文章:

c# - 在字段后绘制带有自定义标签的 "EditorGUILayout.FloatField"?

android - "Not enough storage space"与动态功能模块(App Bundle)一起安装时

audio - 在 Unity Javascript 代码中切换声音按钮

javascript - JavaScript 和 Unity JavaScript (UnityScript) 之间有区别吗?

c# - Raycast - 从 C# 转换为 UnityScript

android - 防止 Android 上的 Unity 在启动画面上检测用户输入?

c# - 不知道如何获得敌人的生命值

unity-game-engine - 用于 Unity 的 Google Firebase 分析插件

unity3d - 脚本运行时统一崩溃

3d - 将 Unity 转换转换为 THREE.js 旋转