Unity DOTS サンプル
以下の記事を参考にして書いてます。
・Unity-Technologies/EntityComponentSystemSamples
1. ようこそ
「DOTS」による新しいシステムで構築を開始するために必要なリソースを見つけることができます。また、これらの新しいシステムについての詳細情報や経験を共有できるフォーラムも用意しています。
・Click here to visit the forum
2. Unity DOTS
私たちは新しい高性能マルチスレッドシステムに取り組んでいます。これによって、ゲームでマルチコアプロセッサを最大限に活用できるようになります。
「DOTS」は、次の要素で校正されています。
・ECS(Entity Component System) : パフォーマンスコードを記述する方法を提供。
・C# Job System : 複数のCPUコアでゲームコードを並列に実行する方法を提供。
・Burstコンパイラ : 最適化されたマシンコードを生成。
これらを使用すると、Unityは高度に最適化されたコードを生成できます。Unity DOTSの詳細については、Unity Webサイトの「Performance by default」を参照してください。
3. ECS(Entity Component System)
「ECS」は、ゲーム設計へのより良いアプローチを提供し、解決する実際の問題、つまりゲームを構成するデータと動作に集中できるようにします。「C# Job System」と「Burstコンパイラ」を利用して、マルチコアプロセッサを最大限に活用します。
「 オブジェクト指向」から「データ指向」に移行すると、コードを再利用しやすくなり、他の人がコードを理解して作業しやすくなります。
「ECS」は、現在「Unity 2018.3以降」をサポートする実験的パッケージです。
4. C# Job System
「C# Job System」は、安全かつ簡単な方法で複数のコアを利用します。競合状態などのマルチスレッドのいくつかの落とし穴から保護を提供しながら、安全で高速なジョブ化コードを記述できるようにします。
「C# Job System」は、「Unity 2018.1以降」に含まれています。
5. Burst
「Burst」は、LLVMベースのバックエンドコンパイラです。「C# Job System」を高度に最適化されたマシンコードにコンパイルします。
「Burst」は、現在「Unity 2018.4以降」をサポートする実験的パッケージです。
・Watch Joachim Ante present these systems at Unite Austin
6. DOTSのパッケージのインストール手順
DOTSのパッケージのインストール手順は、次のとおりです。
(1) メニュー「Window → Package Manager」でPackage Managerを開く。
(2) ウィンドウ上部の「Advances → show preview packages」をチェック。
(3) 「Hybrid Renderer」パッケージを検索してインストール。
これによって、「Entities」パッケージが依存関係として追加され、依存する関連パッケージ(Burst、Collections、Jobs、Mathematicsなど)が再帰的に追加されます。
7. ECSサンプル
ECSSamplesプロジェクトには、DOTSを使い始めるのに役立つサンプルが含まれています。プロジェクトの「リリースノート」には、変更の概要が記載されています。
「ECS Samples」のインストール手順は、次のとおりです。
(1) ECS Samplesのリポジトリをクローン
(2) Unity Hubを起動し、クローンしたプロジェクト「ECSSamples」を選択し、「2019.3.0f1以降」で起動。
(3) 「Assets/HelloCube/1.ForEach/ForEach」を開く。
(4) 実行。
1対のキューブを回転させるサンプルになります。
他にも次のようなサンプルが含まれています。
・Advanced
・BlobAsset
・Boids
・FixedTimestepWorkground
・GridPath
・ManagedComponents
・SubsceneWithBuildCnfigurations
・HelloCube
・1. ForEach
・2. IJobChunk
・3. SubScene
・4. SpawnFromMonoBehaviour
・5. SpawnFromEntity
・6. SpawnAndRemove
8. Physicsサンプル
「Unity Physics」は、Unityの「DOTS」を使用してゼロから作成された、剛体ダイナミックスシステムと空間クエリシステムです。このリポジトリには、「サンプルの概要」と「リリースノート」があります。
9. ドキュメント
・ECS
・Burst コンパイラ
・C# Job System
・Unity Mathematics
・DOTSエディタ
・Hybrid Renderer
・Unity Physics
・Havok Physics
・Unity Transport
・Unity NetCode
・Project Tiny