6

関数を;Input内で使用してはならないという「ルール」があることはわかっています。そうしてもうまくいかないかもしれませんが、それは本当に間違っているのでしょうか?FixedUpdate()Input.GetKeyDown()Input.GetKey()

ハードウェアのパフォーマンスに依存しない一定の割合でキーを押したままにすると、何かを発火させたいとしましょう。Updateデルタ タイムを使用したり、 でキー検出コードを記述して でコードを実行したりして、これを制御するロジックを作成したくありませんFixedUpdate

内部ですべてを行うだけでは意味がありませんFixedUpdateか? 何が起こるか - 希望の速度を維持するために、キーが押されたイベントを失う可能性があります。

しかし、1 つの重要なイベントが発生した場合、それを失う可能性はありますか? の後にリセットがあるUpdateので、 には表示されFixedUpdateませんか?

4

2 に答える 2

2

私の経験では、フレームごとに複数回発生する固定更新とは異なり、更新はフレーム時間で発生します。さらに、FixedUpdate() が呼び出される前に、オブジェクトの物理が実際に更新されます。これは、シーンの複雑さに基づいて遅延が発生する可能性があることを意味します。

Input は実際にはフレームごとにブロードキャストされるため、FixedUpdate() が遅れていて、複数回起動して追いつく必要がある場合、Input チェックは失敗します。

その他のリソース:

http://answers.unity3d.com/questions/10993/whats-the-difference-between-update-and-fixedupdat.html

于 2013-10-08T22:51:43.613 に答える