rrbox / ecs-swift

Entity Component System for swift
MIT License
3 stars 0 forks source link

entity commands を2種類に分類する #70

Closed rrbox closed 4 months ago

rrbox commented 4 months ago

entity spawn 時の component 操作は entity record を直接操作した方が効率がいいと思われます。

  1. entity spawn: Entity と EntityRecordRef をインスタンス化
  2. 生成した entity と record を transaction として commands に push
  3. component 操作: EntityRecordRef にコンポーネントを追加(あまり行わないが、削除も)
  4. フレーム終了後に world に push

entity を検索した際の component 操作はフレーム終了後に操作した方がいいと思われます。

  1. entity 検索操作: 検索は行わず、パラメータで受け取った entity を保持
  2. component 操作: record は取得されないため、操作コマンドを transaction として push
  3. フレーム終了後に entity を検索し、record に component を追加/削除
  4. world に同期
rrbox commented 4 months ago

spawn 時の操作を SpawnedEntityCommands、検索時の操作を現状通り、EntityCommands として再定義してみましょう。

rrbox commented 4 months ago

SpawnedEntityCommands


commands は、Graphic など world に直接命令をしたいコマンドで使用します。

rrbox commented 4 months ago

SearchedEntityCommands

rrbox commented 4 months ago

63 にて達成