【问题标题】:Load the last played scene where user lost instead of loading the start scene all over again, Unity Block breaker game加载用户丢失的最后一个播放场景,而不是重新加载开始场景,Unity Block Breaker 游戏
【发布时间】:2018-07-03 05:44:28
【问题描述】:

我在 unity 4.6 中制作了块破坏游戏,并且添加了 3 个关卡。如果有人在任何级别输掉了 level_02,那么显示游戏结束的输掉屏幕就会加载。当他单击重试时,它会加载开始屏幕,因为我已在构建设置中对它们进行了排序。我希望我的游戏加载用户丢失的相同级别,以便他单击重试并再次加载相同的级别,即 level_02。

【问题讨论】:

  • 是一层一层的吗?
  • 3个关卡有3个场景

标签: c# unity3d game-development


【解决方案1】:

你可以在加载looseScene之前保存当前的levelScene名称,

PlayerPrefs.SetString("LastLevelName",ScaneManager.GetActiveScene().name);

当你点击松散场景中的重启按钮时,然后调用类似这样的方法,

public void RestartSameLevel(){
    SceneManager.LoadScene(PlayerPrefs.GetString("LastLevelName","DefaultSceneName");
    //"DefaultSceneName" can be your StartScene name
}

【讨论】:

  • "LastLevelName" 它可以是 3 个级别中的任何一个。如果用户在 level_03 输了让我们说如何再次将他重定向到 level_03?
  • 是的,它可以是您的 3 个关卡中的任何一个,这就是为什么我们使用 SceneManager.GetActiveScene().name 在 PlayerPrefs 中使用键“LastLevelName”保存最后一个关卡场景名称。
【解决方案2】:

你可以重启场景

Application.LoadLevel(Application.loadedLevel)

或者

Scene scene = SceneManager.GetActiveScene(); 
SceneManager.LoadScene(scene.name);

【讨论】:

  • 不起作用,出现以下错误:无法加载场景:场景名称无效(空字符串)和构建索引无效 -1 UnityEngine.SceneManagement.SceneManager:LoadScene(String) LevelManager:LastLevel()(在资产/Scripts/LevelManager.cs:31) UnityEngine.EventSystems.EventSystem:Update()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多