问题描述
我正在Unity2D中进行大学练习,需要按R键重新开始游戏。游戏是一个按下空间时会移动的球。我添加了一些代码,但是当我按R键时什么也不会发生。
我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class RestartGame : MonoBehavIoUr
{
public void restart()
{
if (Input.GetKeyDown(KeyCode.R))
{
SceneManager.LoadSceneAsync(
SceneManager.GetActiveScene().buildindex);
}
}
}
我在一个论坛上看到,我必须创建一个空对象并在其中添加脚本以使其起作用。但是出于某种原因,它什么也不会发生。
非常感谢您的帮助。
解决方法
如果要检查User Input
,则需要使用Unity提供的Update()
方法进行检查。
示例:
private void Update() {
if (Input.GetKeyDown(KeyCode.R)) {
SceneManager.LoadSceneAsync(
SceneManager.GetActiveScene().buildIndex);
}
}
如果您不使用更新方法或称为每一帧的方法(例如OnTriggerStay()
),将无法检测到用户是否实际按下了键。