如何加载您在当前场景中创建的新场景?

时间:2015-06-11 16:56:25

标签: c# unity3d unityscript

我用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...

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

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

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

1 个答案:

答案 0 :(得分: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;