有没有比 Update() 更高效的方法来检测不常用的输入?
Is there a more performant way to detect infrequently used input than Update()?
例如,在调试时,我经常有一个输入允许我重置当前场景。但是,我不经常使用它,所以也许不需要检查 Update() 中的每一帧?
我知道 InvokeRepeating()。但是,如果我正在检查 GetButtonDown(),是否不需要在调用调用方法的确切帧上按下按钮?
在每一帧调用输入法不是很慢。但是您可以每隔 x 秒检查一次输入,并将结果存储在某个 class 变量中,并使用此变量进行输入检测。使用此方法预计会有一些输入延迟。我认为更好的方法是使用新的输入系统:
Unity 的新输入系统
Some tutorial for setting up this system
使用此输入系统,您可以创建自己的 InputAction 并订阅它的某些事件。一个例子是:
new PlayerInput().Gameplay.Shoot.performed += OnShoot;
PlayerInputclass是unity根据我在编辑器中的设置生成的:
例如,在调试时,我经常有一个输入允许我重置当前场景。但是,我不经常使用它,所以也许不需要检查 Update() 中的每一帧?
我知道 InvokeRepeating()。但是,如果我正在检查 GetButtonDown(),是否不需要在调用调用方法的确切帧上按下按钮?
在每一帧调用输入法不是很慢。但是您可以每隔 x 秒检查一次输入,并将结果存储在某个 class 变量中,并使用此变量进行输入检测。使用此方法预计会有一些输入延迟。我认为更好的方法是使用新的输入系统:
Unity 的新输入系统
Some tutorial for setting up this system
使用此输入系统,您可以创建自己的 InputAction 并订阅它的某些事件。一个例子是:
new PlayerInput().Gameplay.Shoot.performed += OnShoot;
PlayerInputclass是unity根据我在编辑器中的设置生成的: