【问题标题】:How to load a new scene you create in current scene?如何加载您在当前场景中创建的新场景?
【发布时间】:2015-06-15 08:09:34
【问题描述】:

我用 Unity 制作了一个 3D 世界,我想在一个菜单中保存我的世界。我拯救了我的世界:

EditorApplication.SaveScene("Assets/Scene/name.unity",true);

然后我将我的新场景添加到我的构建设置中:

var original = EditorBuildSettings.scenes;
    var newSettings = new EditorBuildSettingsScene[original.Length + 1];
    System.Array.Copy(original, newSettings, original.Length);
    var sceneToAdd = new EditorBuildSettingsScene("Assets/Scene/name.unity", true);
    newSettings[newSettings.Length - 1] = sceneToAdd;
    EditorBuildSettings.scenes = newSettings;

当我在不关闭游戏的情况下加载新场景时:

Application.LoadLevel("name");

我有这个错误:

Level 'name' (-1) couldn't be loaded because it has not been added to the build settings.
To add a level to the build settings use the menu File->Build Settings...

当我查看构建设置时,会添加并检查我的新场景。 如果我重建游戏,我可以加载我的新场景,但我不想重建游戏以在我刚刚保存时加载新关卡。

如何在不关闭游戏的情况下刷新构建设置? 或者如何更简单地保存我的新场景?

编辑:我找到了一个替代方案,我首先创建了我的场景,我将其添加到构建设置中,并在使用相同名称保存时在游戏中删除它。

【问题讨论】:

  • 尝试在构建设置中更改场景的顺序。

标签: c# unity3d unityscript


【解决方案1】:

Application.LoadLevel("name"); 之前添加此代码以将其添加到您的构建设置中:

 var original = EditorBuildSettings.scenes;
 var newSettings = new EditorBuildSettingsScene[original.Length + 1];
 System.Array.Copy(original, newSettings, original.Length);
 var sceneToAdd = new EditorBuildSettingsScene("Assets/Path/To/Scene/name.unity", false);
 newSettings[newSettings.Length - 1] = sceneToAdd;
 EditorBuildSettings.scenes = newSettings;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多