Unity 1 weekやってみた ~Clean Architectureを添えて~

165 Views

June 23, 25

スライド概要

しょーじ発表。

profile-image

ゲームエンジニア。

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Unity1weekやってみた ~Clean Architectureを添えて~ 発表者:しょーじ

2.

ことの経緯 クリーンアーキテクチャ採用します! 苦しめ まーしー ひえぇ〜 しょーじ ひえぇ〜 るるたぁ

3.

Clean Architectureって何? • すべてのソフトウェアアーキテクチャが守るべき考え方や アプローチがまとめられた概念 • ソースコードは「上位レベル」の 方針だけに向かうべき ・上位レベルとはソースコード内で 最も重要な概念や処理のこと 出典:The Clean Architecture

4.

レイヤー層に分ける 上位レベルに依存している!!! Entity (HPなどのmodel) Domain(ゲーム進行とか) UI Presentation AppMain ・エントリー ポイント ・DI Data ・セーブ機能 ・ScriptbleObject

5.

色々制約を設けた ・「Assembly Definition」を作る →各Assemblyに参照の制限するやつ 例) Domain層にあるクラスがData層のクラスを 参照できなくなる! セーブ使えないンゴ Domain Data SaveSystem.cs

6.

Assembly Definitionの恩恵 ・ システム的に扱うことを制限しているので 人為的ミスが減る ・Domain層はMonobehaviorを知らない( Unity非依存 ) ・他にも色々メリットあり

7.

参照できないときどうする?

8.

A. インターフェースを使う 依存性逆転の原則(DIP)

9.

例) DomainがPresentationを参照したいとき ・Viewでボタンが押されたことを発火して処理したい場合など ボタンの通知知りたい! Domain Presentation

10.

例) DomainがPresentationを参照したいとき ・Domain側でIPresentationを定義 ・DomainはそのIPresentationを使う ・PresentationはIPresentationを実装する ・依存関係がDomain→PresentaionからPesentation→Domain Domain IPresentation Presentation

11.

例) DomainがPresentationを参照したいとき ・Domain層はPresentaton層を知らなくて済む!!! ・場合によってはPresentation層もDomain層の実装を 気にしなくていい Presentationって何ですか?? IPresentation使おーっと Domain IPresentation Presentation

12.

感想 ・依存性逆転の原則を初めて正しく使えた ・Assembly Definitionで制限かけたのがでかい ・どのレイヤー層に書けば良いのか戸惑った