2
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 3 years have passed since last update.

【UE4】どこからでも呼び出せるクラスの実装方法【UnrealEngine】【Singleton】

Posted at

今回はUE4でどこからでも呼びだし扱うことのできるクラスを実装したいと思います。
結論から言うとUE4のGameInstanceクラスの中に呼び出したいクラスを所有させます。

そもそもGameInstanceとはクラス

UE4に備わっていて、ゲームの起動から終了までずっと情報を保持し続けるクラスで、
インスタンスを取得する関数を作れば何処からでも呼び出すことが出来ます。

(レベルをまたいでも使うパラメータなどによく使われる)

1.GameInstanceの中にゲーム中常に使用したいクラスをメンバに加える

####※UPROPERTYを頭に必ず書くこと
書き忘れるとUE4側でレベルを切り替える際にGCで勝手にメモリを消されてします
キャプチャ.PNG

2.初期化と削除時にクラスの生成と解放を行う 

GameInstance専用の仮想関数があるのでオーバーライドして
Initでクラスの生成を行い Shutdownでクラスを解放を行う

2.PNG

####これで後はGameInstanceを経由してクラスを参照すればどこでも呼び出せるクラスの完成

おわりに

自分でSingletonパターンでクラスを実装したり新機能のSubsytemなど使って色々試してみたのですが。
この方法が簡単で分かりやすく勧めれそうでした。

2
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
2
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?