public struct Engine : IComponentData {
public float power;
}
IComponentDataを継承
値のみ持つ
何もデータを持たない事もある
public class Engine : MonoBehaviour {
public float power;
}
MonoBehaviour
ComponentData
定義の違い
構造体
var entity_manager = World.Active.GetOrCreateManager<EntityManager>();
var entity = entity_manager.CreateEntity(typeof(Engine));
EntityManagerで生成
var obj = new GameObject(“obj”, typeof(Engine));
MonoBehaviour
ComponentData
生成の違い
GameObject 1 Data Renderer Data
Data Data Data Data Data Data Data Data Data Data Data Data
Data Data Data
手続き的な手法を踏まずにオブジェクトをロード
Entity Entity Entity Entity Entity
Data Data Data Data
レイアウトが確定しているので、
ロードしたデータをそのまま
メモリに展開
Data Entity Entity
Data Data Data Data Entity Entity
ちょっと未来話
File
問題が起こりそうならエラーを出してくれる
InvalidOperationException: The previously scheduled job Job1:AJob
writes to the NativeArray AJob.positions. You are trying to schedule a
new job Job1:BJob, which writes to the same NativeArray (via
BJob.positions).
要約:複数のジョブが同じNativeArrayに同時に書き込むかも
InvalidOperationException: The native container has been
declared as [WriteOnly] in the job, but you are reading from it.
要約:書込専用のNativeArrayを読み込んじゃあかん
問題が起こりそうならエラーを出してくれる
ありがたや