More Effective Coroutines (MEC) is an improved implementation of coroutines.
When you use Unity's built-in default coroutines you will have to be very careful about how you use them or else they will allocate memory that the garbage collector later has to clean up. This can cause your app to randomly skip frames. MEC solves that issue for coroutines, while also making coroutines more powerful by running about twice as fast as Unity's default coroutines do and providing you with a host of new options that Unity's default coroutines don't have.
This is the Pro version. The free version of MEC contains the mininum set of features, whereas the Pro version contains the full set. Both versions run on the same super-fast core.
Switching between MEC coroutines and Unity's default coroutines is really easy. They can even be used side by side in the same project.
Advantages of MEC (both free and pro):
- MEC doesn't require that your class inherit from MonoBehavior in order to run a coroutine.
- Coroutines can be "tagged" with a string when created, allowing you to kill or pause coroutines individually or as a group.
- MEC contains no pre-compiled DLLs, which makes debugging easier.
- MEC contains useful extra segements, like SlowUpdate.
Additional features found in Pro:
- Additional segments: All the segments that are included in the free version, plus RealtimeUpdate, EditorUpdate, EditorSlowUpdate, EndOfFrame, and ManualTimeframe.
- Additional functions: RunCoroutineSingleton for when you want to ensure that there is only ever one instance of a particular coroutine running at a time. SwitchCoroutine changes the timing segment or tag of a coroutine while running.
- Extension methods: Delay adds a delay to the beginning of a coroutine. Append and Prepend automatically run one coroutine as soon as the previous one finishes. CancelWith extends the coroutine to automatically stop when a given condition goes out of scope. Superimpose runs two coroutines together. (which can be useful for wait or kill operations.) Hijack changes the return value of a coroutine. (which can be useful when you want to run the exact same code, but in slow motion).
- A lot of additional ways to control a coroutine from just the handle, such as changing the segment, layer, tag, or even ending it.
- Coroutines can be grouped so that when one is terminated or paused the others in the group do the same.
For more informantion, see the documentation here.
より効果的なコルーチン(MEC)は、コルーチンの改善された実装です。
Unityの組み込みのデフォルトコルーチンを使用するときは、それらの使用方法に十分注意する必要があります。そうしないと、後でガベージコレクターがクリーンアップする必要があるメモリが割り当てられます。これにより、アプリがランダムにフレームをスキップする可能性があります。 MECはコルーチンの問題を解決すると同時に、Unityのデフォルトコルーチンの約2倍の速度で実行し、Unityのデフォルトコルーチンにはない新しいオプションのホストを提供することで、コルーチンをより強力にします。
これはProバージョンです。 MECの無料バージョンには機能の最小セットが含まれていますが、Proバージョンには完全セットが含まれています。どちらのバージョンも同じ超高速コアで実行されます。
MECコルーチンとUnityのデフォルトコルーチンの切り替えは非常に簡単です。同じプロジェクトで並べて使用することもできます。
MECの利点(無料とプロの両方):
-MECでは、コルーチンを実行するためにクラスがMonoBehaviorから継承する必要はありません。
-コルーチンは、作成時に文字列で「タグ付け」でき、コルーチンを個別に、またはグループとして強制終了または一時停止できます。
-MECにはコンパイル済みDLLが含まれていないため、デバッグが容易になります。
-MECには、SlowUpdateなどの便利な追加セグメントが含まれています。
Proにある追加機能:
-追加セグメント:無料版に含まれるすべてのセグメントに加えて、RealtimeUpdate、EditorUpdate、EditorSlowUpdate、EndOfFrame、およびManualTimeframe。
-追加機能:特定のコルーチンのインスタンスが一度に1つしか実行されないようにする場合のRunCoroutineSingleton。 SwitchCoroutineは、実行中にコルーチンのタイミングセグメントまたはタグを変更します。
-拡張メソッド:遅延は、コルーチンの先頭に遅延を追加します。 AppendとPrependは、前のコルーチンが終了するとすぐに、自動的に1つのコルーチンを実行します。 CancelWithはコルーチンを拡張して、特定の条件が範囲外になったときに自動的に停止します。スーパーインポーズは、2つのコルーチンを一緒に実行します。 (待機または強制終了の操作に役立ちます。)ハイジャックはコルーチンの戻り値を変更します。 (まったく同じコードを実行したいがスローモーションで実行する場合に便利です)。
-セグメント、レイヤー、タグの変更、終了など、ハンドルだけからコルーチンを制御するための多くの追加方法。
-コルーチンをグループ化して、1つが終了または一時停止したときに、グループ内の他のコルーチンも同じようにすることができます。
詳細については、こちらのドキュメントをご覧ください。