Unity3d 重新加载当前场景

3

好的,我试图在按下R键时重新启动场景,但出现了错误,比如在Unity控制台中出现了“意外符号' } '”和“解析错误”,而在Microsoft visual studio中出现了“; expected”的错误。你有什么想法这段代码有什么问题吗?

void Update() {
    if (Input.GetKeyDown(KeyCode.R))  
        SceneManager.GetActiveScene().buildIndex
}

2
你真的应该养成使用 {} 的习惯,即使只有一个表达式。省略它们可能会导致难以注意到的错误。 - Basic
对不起,我不理解你的意思,请问能否解释一下 @Basic。 - Casper Powell
1
很难在单行注释中展示,但是... 你应该使用 if(condition) {command;} 而不是 if(condition) command; 注意额外的 {}。请参考 http://softwareengineering.stackexchange.com/questions/16528/single-statement-if-block-braces-or-no/16530 获取更多信息。这不是一个硬性规定,但它绝对可以减少错误,特别是如果你还在摸索阶段。 - Basic
哦,谢谢,我明白你的意思了。 - Casper Powell
3个回答

15
必须要求场景管理器使用 LoadScene 来加载场景。
if (Input.GetKeyDown(KeyCode.R))  
    SceneManager.LoadScene( SceneManager.GetActiveScene().buildIndex ) ;

你只是在检索当前场景的构建索引。

另外,关于你的编译错误,你忘记在该行末尾加上分号 ;)


你比我先完成了。而且很好,你加了分号:D - MiningSam
1
@CasperPowell 不要忘记将这个答案标记为正确的哦 ;) - MiningSam

1
我可以说以下代码可能是最简单的方法:
SceneManager.LoadScene(SceneManager.GetActiveScene().name);

-2

只需关闭窗口并重新启动Unity应用程序,就这么简单。


1
扩展,解释原因。 - Artemis
@howdodoit,你的回答与上下文无关(可能你在开玩笑)。 - Kamran Bigdely

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接