この記事の3行まとめ
- Unity ECSの機能を解説する動画がYouTubeに公開
- データ指向型の設計により、従来のオブジェクト指向型よりも高速な処理を可能に
- 動画で使用されているサンプルプロジェクトも公開
2023年7月3日、ユニティ・テクノロジーズ・ジャパンは『はじめての Unity ECS – Entity Component System を使ってみよう!』と題した動画をYouTubeに公開しました。
本動画は、2023年5月30日リリースの「Unity 2022 LTS」で正式に実装された、Entity Component System(以下、ECS)の仕組みや従来の設計との違いを、サンプルプロジェクトを用いて解説しています。
ECSは、データ指向型のソフトウェアアーキテクチャの一種で、従来のUnityが基づいているオブジェクト指向型の設計よりも高速な処理を可能にします。
Unityにおける従来の設計では、1つのオブジェクトは、基本的な機能をもつGameObjectクラスと、機能を追加するための、データと処理を含むコンポーネントで構成されます。
一方、ECSに基づく設計では、ほとんど機能を持たないEntity構造体に加え、データのみを管理するコンポーネントと、処理のみを管理するSystemクラスによって構成されます。
従来のUnityのクラス設計(画像は『はじめての Unity ECS – Entity Component System を使ってみよう!』より引用)
ECSのクラス設計(画像は『はじめての Unity ECS – Entity Component System を使ってみよう!』より引用)
ECSに基づく設計ではデータと処理が分離しているため、メモリ内にデータをより効率的に配置でき、メモリアクセス速度が向上します。
従来のUnityでは、メモリ上にデータがバラバラに配置される(画像は『はじめての Unity ECS – Entity Component System を使ってみよう!』より引用)
ECSでは、メモリがアクセスしやすいようにデータを配置できる(画像は『はじめての Unity ECS – Entity Component System を使ってみよう!』より引用)
動画では、サンプルプロジェクトの説明を通して、ECSにおけるコンポーネントとSystemの実装方針について解説。そのほか、従来のコンポーネント群をECSに則したコンポーネントに変換する「SubScene」にも触れています。
なお、動画で使用したサンプルプロジェクト『ECS-Strawman』は、GitHubにて公開されています。
また、Unity Technologiesが制作したECSのサンプルプロジェクトはこちら、Data-Oriented Technology Stack(DOTS)(※)のデモプロジェクト『Megacity』はこちらからダウンロード可能です。
※ Burst Compiler、C# Job System、ECS for Unityなどを含む、データ指向型の技術スタック
『Megacity』(画像はGitHubより引用)