0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity DOTSを始めたい

Last updated at Posted at 2022-12-27

お前誰だよ

そこら辺の大学生です。この記事は勉強するついでに書いた記事なので、間違ってる場所多めでお送りするかもしれません。自信もないけど書いてます。ごめんね。
また、この記事は2022年12月末の公式ドキュメントを頑張って読んで書いてます。

この記事の目的

いろんな記事読んだけど結局何したら理解できるんやみたいな人用。細かいところはいろんなところでまとまってるのでそっちをご確認ください。

Unity DOTSって?

Unityがめっちゃ力入れてるもの。プログラム組むときの設計が大きく変わるが、高速化を実現してるもの。詳しくはほかの記事見て。
ECS, Burst, C# JobSystemの3つを柱としている。

紹介の前に環境

Unity 2022.2.1f1
Entities 1.0.0-pre.15
Burst 1.7.4

ECS(Entity Component System)

メインディッシュ。詳しくは以下略

Burst

コンパイルうんぬんかんぬんだと思ってる。詳しくは以下略

C# JobSystem

C#を早く非同期処理できるぜベイベ!詳しくは以下略。

DOTSやりたい!なにする?

Unityの公式ドキュメント読みましょう。俺は下のSpawn exampleをやると少し理解できました。
Unity Spawn example

Spawn exampleやったという前提で…俺の備忘録

こっからは、Spawn exampleとUnityの従来の開発スタイルをある程度理解してる前提で書きます。

SubScene

GameObjectは、SubSceneに入れるとEntityになります。昔の記事を見てると、従来はSubSceneではなく「Convert to Entity」というスクリプトをアタッチしてEntityになってたっぽい。
オブジェクトにアタッチしてたコンポーネントも再生モード時にEntityに変換されるので、今まで通りの世界の構築方法で大丈夫!
(※コンポーネントの変換は一部対応してないです。対応してないやつは無視されてシーンに反映されるので注意。)

Baker

今までの開発スタイルとECSを連携させるときに使うっぽい。

IJobEntity

C# JobSystemのやつ。俺も詳しくは知らんけど、ECSのSystemで使う用の汎用メソッドを定義するノリで良いと思う。

ISystemとSystemBase

基本的にはISystemを使うべきっぽい。こっちの方が早い。その代わりSystemBaseは便利な機能があるよーって書いてあった。

ISystemのEntityのアクセス方法

foreach(var 変数 in SystemAPI.Query<RefRW</*自作IComponent*/>>) 
{
    //処理
}

SystemBaseのEntityのアクセス方法

Entities.ForEach( (ref /*自作IComponent*/) =>{
    //処理
});

詳しい使い方は、ほかの記事見てね。

以上

Unity DOTSを実際に触る一日目でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?