Closed rrbox closed 8 months ago
Schedule は HashMap(dictionary) により実装できます。
Schedule に ObjectIdentifier
型のプロパティを付与した方が検索速度が速いと思われます。AnyHashable
は hashValue
が全て同じとなりますが、型情報を加えると id の型によって hashValue
を変えることができるためです。
ただし、Schedule 自体のメモリサイズが大きくなります(+8 byte)。
System を AnyMap に持たせる必要がなくなるため、WorldStorage とは別のプロパティを用意するといいかもしれません。
システムが実行されるタイミングを
Schedule
という構造体で制御する提案です。この機能により、それまで
UpdateSystem
,EventSystem
,SetUpSystem
として別々に実装していたシステム群を1種類にまとめることができます。デメリットは、start up で使用できないパラメータ(Query)があること、event reader が他のスケジュールでは利用できないことが挙げられます(不正なパラメータの使用)。以前はコンパイル時に「不正なパラメータの使用」が検出できましたが、schedule を利用すると実行時のみでしか検出できないようです。