タスクスケジューラ

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

タスクスケジューラーは、ゲームが停止されているときでも、各フレームで完了したタスクをコーディネートします。これには、プレイヤーの入力を検出、キャラクターのアニメーションを更新、物理シミュレーションを更新、およびスクリプトを再開するなどが含まれます。このタスクは、Global.RobloxGlobals.wait() 状態でスクリプ

複数のタスクが実行されている場合がありますが、タスクスケジューラーは、次の状況で特にオーバーロードされる可能性があります:

  • カスタムキャラクターリグまたは入力スキームを使用する。
  • 自分でパーツをアニメーションする ( Animator を使用することなく)。
  • 精密な物理によって大きく左右されます。
  • オブジェクトを定期的にレプリケートする。

フレーム

フレーム は、ゲームロジックのユニットで、ワークが完了します。各フレームは、タスクを効率的に実行し、毎秒より多くのフレームを実行し、よりスムーズなプレイヤーエクスペリエンスを実現する必要があります。

RunService

フレーム-フレームのゲームタスクを追加する最も直接な方法は、RunService の次のメンバーを通じてです:

スケジュール優先度

タスクスケジューラは、次の順序でタスクをカテゴリ化し、完了します。一部のタスクはフレームで実行できない場合があり、他のタスクは複数回実行できます。

ベストプラクティス

高性能なゲームを効率的に構築するには、フォロー中のことに注意してください:

  • 必要ない場合は、レンダリングステップに関数を接続/バインドしないでください。 オプションのないタスクは、入力後、レンダリングする前に実行する必要があります。 オーダーの厳重な制御には、BindToRenderStep() を使用して、

  • 待ちスクリプトの量を最小限に抑えます。 while wait() do end または while true do wait() end</

  • Motor6D の変換は、Animatorsイベントで行う必要があります。 そうでない場合は、Animator は、次のフレームで変更を上書きします。0> Class.Motor6D.Transform