可能只是一些愚蠢的小错误,我现在太愚蠢了,看不见,但这真的让我很困扰.
public void ButtonNextLevel()
{
string currentScene = Convert.ToString(SceneManager.GetActiveScene().name);
char[] currentSceneChars = new char[currentScene.Length];
int stringLength = currentScene.Length;
int levelIndex;
using (StringReader sr = new StringReader(currentScene))
{
sr.Read(currentSceneChars, 0, currentScene.Length - 2);
}
string levelIdentifier = new string(currentSceneChars);
Debug.Log(levelIdentifier);
if(levelIdentifier == "Level")
{
levelIndex = currentScene[stringLength - 1];
Debug.Log(levelIndex);
string nextSceneName = "Level " + (levelIndex + 1).ToString();
if(SceneManager.GetSceneByName(nextSceneName).IsValid())
{
SceneManager.LoadScene(nextSceneName);
}
else {GameWon();}
}
}
public void GameWon()
{
SceneManager.LoadScene("GameWon");
}
主要问题似乎是if(levelIdentifier == "Level")
声明.如果我到达执行此脚本的位置,我确实会收到Debug.Log(levelIdentifier);
的响应(明确指出"Level"
),但不会收到Debug.Log(levelIndex);
的响应: