5.1K Views
February 15, 25
スライド概要
ゲームプログラマー┃C#┃C++┃Unity┃Unreal Engine┃Google Apps Script┃Git
UE で「依存性の注入」を 利用するメリット ツバサムス @tsubasamusu
自己紹介 高校卒業後、富山の企業で UE5 を用いて iOS と Android 用のアプリを開発 現在は退職し、一時的にフリーランスで Unity や UE のお仕事をしています 「ツバサムスBlog」という技術ブログをや ってます! 最近はエディタ拡張にハマっていて、プラ グインを開発しながら「Unreal C++ の学習 メモ」に学んだ事を随時追加しています! ツバサムスBlog
「依存性の注入」とは 英語では Dependency Injection(DI)という。 一言で表すと「オブジェクトを自分で作るのではなく、外部から注入 してもらおう!」という考え方の事。
DI の利用例 ←自分で武器(BP_PistolComponent)を作って Shot() を呼び出している。 Shot() が宣言してあるインターフェース (BPI_Weapon)を外部から事前に受け取り、 Shot() を呼び出している↓ ↓DI を利用している例 ↑DI を利用していない例 ※タイミング的にはセッターよりも「Expose on Spawn」で注入した方が良いかもしれない
DI のメリット① 新たな武器(BP_ShotgunComponent) の Shot() の動作を確認したい時、左の画 像のように Shot() の呼び出し箇所を直接 編集する必要があるが、DI を利用すると 注入する側が注入するオブジェクトを変 えるだけで良いため、単体テストしやす くなる! ↑DI を利用していない時 ↑DI を利用している時
DI のメリット② Shot() を呼び出すクラス(BP_PlayerCharacter)が武器のクラスでは なく、インターフェースに依存するようになるため、クラスを疎結合 化できる! ※DiskSize
最後に 開発規模が大きくなればなるほど DI の 重要性は増します! DI には他にもメリットがあれば、デメ リットもあるので興味のある方はぜひ 調べてみてください! X でも日々発信しているのでチラッと 覗いていただけると嬉しいです! @tsubasamusu