N煎ログブログ

n番煎じと言っても過言ではない今更な、でも個人的に躓いたUnityやUE4等での開発についての云々を書いていきます

【UE4】大量のフラグが存在する場合の管理方法

目次

大量のフラグ変数は死の予兆

『フラグ』:ゲーム制作には無くてはならない存在

ですよね?

しかしゲームの規模が大きくなるに従って使用したいフラグも増えていき、管理する量が多くなっていき...

こんなことに...(ヒィッ

f:id:isemito:20171215193113p:plain

まだ少ないので良い(良くない)ですが、これが20,30と仮に増えていった場合のことは考えたくありません...。

UE4AnswerHub神

UE4ならではの解決策がないか質問してみました。

大量のフラグが存在する場合の管理方法 - UE4 AnswerHub

『Set』!? なんぞ!!!

回答者様に教えていただいた以下サイトによると、

docs.unrealengine.com

というものがあり、

データの中に何があって何がないかというのを管理するために使う物

だそうです。

Addで追加。Unionで合成。Contains Itemで存在確認。 等々なかなか便利そうです。

要は、

ある型の複数の値を1つの変数として扱う物

ざっくりしたイメージでこんな感じだと思います。

使ってみました

実際に使用してみた所(enum値を用意して使用しています)、

f:id:isemito:20171215194001p:plain

 ア...アァ...(神を拝む姿勢

これ↓が、

f:id:isemito:20171215193113p:plain

こう↓

f:id:isemito:20171215194001p:plain

すっごいスッキリ!!

しかもアニメーション遷移の情報を今まで取ってた(依存関係強すぎ)のが不要になったおかげで依存関係を弱くすることが出来ました。

皆も使おう「Set」!

ちなみに

UE4にはBitmaskという仕組みがあり、Bit演算でフラグ管理することも出来ます。

今回私はまだ使用したことなかったSetを用いました。

Bit演算に関しては過去記事にて公開していますので参考までに。

isemito.hatenablog.com

まとめ

「Set」と呼ばれる変数で一括管理できる。

余談

UE4 Set」と検索しても出てこないので苦労する