測試目的
探究分別在Update和FixedUpdate使用GetKeyDown執行次數,會不同的
測試開始
在Update測試
我們先在Update測試,很正常是一幀重置一下狀態,以防止點選一下執行多次,請看程式碼
private void Update()
{
if (Input.GetKeyDown(KeyCode.J))
{
count += 1;
Debug.Log(count);
}
if (Input.GetKeyUp(KeyCode.J))
{
count = 0;
}
}
測試結果
在FixedUpdate測試(預設每秒執行50幀的情況下)
修改FixedUpdate每秒執行幀率可以在Project > Time > Fixed Timestep設定,不修改也就是0.02,s為單位,每多少s執行一次
void FixedUpdate()
{
if (Input.GetKeyDown(KeyCode.J))
{
count += 1;
Debug.Log(count);
}
if (Input.GetKeyUp(KeyCode.J))
{
count = 0;
}
}
測試結果
是不是很迷惑?很正常
請看Unity GetKeyDown的官方解釋
如果你放到FixedUpdate它也會按照Update執行幀率進行重置,有時會有誤差,因為FixedUpdate和Update執行幀率不同,修改固定幀率即可更接近Update執行結果
這些都是我的個人理解,非常感謝您看我的這篇文章