あなたが説明したことは、基本的にコンピュータがどのようにイベントを行うかです。 OS自体を含むほとんどのイベント駆動型プログラムは、プーリングシステムと呼ばれるものを使用します。プーリングシステムでは、既存のすべてのイベントの大きなリストがスローされ、その起動条件が満たされているかどうかがチェックされます。この発射条件は、キーボードまたはネットワークカードのような装置からの入力のような時間または他のトリガとすることができる。
Unityエンジンが実際にこれを実行します。その背後には、ユニティには、組み込みのすべてのモノブロック法の発火条件が満たされているかどうかをチェックしている場合は、常にメソッドを実行するという主要プロセスがあります。たとえば、FixedUpdateメソッドは1秒間に何度も呼び出されることが保証されていますが、30回は1秒間と思っていますが、私の頭の上からはわかりません。固定の更新のための呼び出しメソッドは、単にこれのようなものになります。
timer += Time.deltaTime();
while(timer >= (1.0f/30.0f))
{
FixedUpdate();
timer -= (1.0f/30.0f);
}
このコードは十分な時間がFixedUpdate()への別の呼び出しを実行するために経過している場合は常にチェックし、できるだけ頻繁プロセッサは許すとして実行します、プロセッサが過負荷になるので、もしこのコードはまた、バックデートを実行し、このコードはdoesnの2秒後に呼び出され、次回に呼び出されると、2秒間に十分な呼び出しが行われなくなります。
あなたのユニティアプリケーションの場合、これは小クラスで約10時間の条件しかないとすれば、それ以上のことを示唆しているようにif文を使用するだけです。二つの方法
abstract class ConditionEvent{
bool ConditionMet();
void Process();
}
と抽象クラスは、その後、あなたのMonoBehavour呼び出しで私はConditionMet関数を呼び出すループでこれらのクラスでいっぱいのリストを持っているでしょう。この関数がtrueを返した場合は、Processを呼び出します。
Unityの 'MonoBehaviour'は、この目的のために' Invoke'、 'InvokeRepeating'、および' StartCoroutine'関数を提供します。詳細については、マニュアルを参照してください。完全に誤解されていない場合は、公式のチュートリアルも用意されています(そうでない場合は、たくさんのytubeがあります)。 – yes