質問編集履歴

2

ECSについて文章を追加

2024/10/04 09:49

投稿

user12345
user12345

スコア1

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,10 @@
2
2
  下記は`ECS`実装に向けてまずは簡単なコンソール出力にて、実装を簡略化したものなのですが、
3
3
  `System`と`Entity`の部分でどのように、`Entitiy`と`ComponentData`を連携して
4
4
  それぞれ異なる`ComponentData`に対して`System`を実行したらいいか知りたいです。
5
+
6
+ ECSとは:https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%83%86%E3%82%A3%E3%83%BB%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%83%BB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
7
+
8
+ ECSの実装について:https://zenn.dev/rita0222/articles/c22a8367e31b4d5f4eeb
5
9
 
6
10
  ### 知りたいこと
7
11
  `System`部の実装方法で、複数の異なる`ComponentData`の塊を処理する方法

1

文章を追記、誤字を修正

2024/10/03 12:32

投稿

user12345
user12345

スコア1

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
  それぞれ異なる`ComponentData`に対して`System`を実行したらいいか知りたいです。
5
5
 
6
6
  ### 知りたいこと
7
- `System`部の`Update()`関数や`Entity`クラス実装方法が知りたい。
7
+ `System`部の実装方法で、複数の異なる`ComponentData`の塊を処理する方法
8
8
 
9
9
 
10
10
  ### コード内容
@@ -20,8 +20,12 @@
20
20
  ### 考えたこと
21
21
  1,今のような場合だと`main()`関数に直接記述できますが実際の開発ではロジック化するので違います
22
22
  2,仮に`ComponentData`が一種類だけで`Voxel`のみだったら`System`部の`Update()`関数の引数に`(std::vector<Voxel> &v)`などといった形で考えたのですが、実際の開発では複数の種類あるはずなので実装できません。
23
- 3,そもそもキャッシュヒットを狙う設計なので、ポインタなどを使うとデータが並ばなくなるので
23
+ 3,そもそもキャッシュヒットを狙う設計なので、ポインタなどを使うとデータが並ばなくなるので
24
24
  困りっています。
25
+
26
+ ### 理解したこと
27
+ 1,ECSではComponentはデータのみを持ち、非ECSでコンポーネント指向のUnityのような形である、
28
+ Update()のような機能は`System`が処理する
25
29
 
26
30
 
27
31
  ### 該当のソースコード