タグ判定を使ったインタラクション!そして注意点!
今回は、
タグ判定!
について解説します!
あるアクターに対してインタラクションを起こす方法はいろいろあると思います。
キャストノードを使った方法やイベントディスパッチャー・・・方法は様々です。
その中でもタグ判定というものがあるのでそれを紹介します!
まず、レベルに何かしらのアクターを配置しましょう!
とりあえずSphereで!
そして、配置したアクターの詳細の一番下当たりまで行くと・・・
Tagという項目があるので、その横の「+」をクリックしましょう!
これで、アクターにタグ付けが可能となりました。
Sphereに「Test」というタグでもつけましょう!(もちろん自分の好きな名前でもいいです!)
そして、キャラBPに行き、以下のようにBPを組みます。
ActorHasTagのTagには、さきほど入力した「Test」を入れましょう!
それでは、プレイしてみましょう!
しっかり動作しているのが分かります。
さらに、ちゃんと動作してるのか確認するために、ほかのアクターも配置しましょう!
SphereとシリンダーにTagをつけましょう!先ほどと同じ名前「Test」で。
そして、もう一度プレイすると・・・
しっかり指定したTagを持っているアクターのみ反応しましたね!
さて、このTag判定はどういうときに役立つかというと・・・
例えば、姿が全く異なる敵がいたとします。
A、B、C、Dという敵がいたとします。
この中で、AとCのみにダメージを与えたい!となった時、
いちいちキャストするのはめんどくさいです。
この敵の数が2体のみならず、10体、20体、100体以上いたとなると・・・
まあ、こんな感じでひじょーーーーーーーに非効率です。そしてパフォーマンスも落ちると思いますし、デメリットが多いですね。見た目も悪いです。
なので、こういうことにならないためにTag判定というのはとても役に立つわけです!
姿形が違うバリエーション豊富で名前もそれぞれ違う敵がたくさんいる。けれどもみんな共通してダメージを与えることの可能な「Enemy(敵)」というTag付けをしてひとまとめにしたい!というときにTag判定を使えば、いちいちキャストなんかしなくても、Tag判定を行えばいいわけです!
さて、ここで注意点。
Tag判定を行っていると、たまーにエラーが起こります。(原因は分かりませんが)
そういう時は、「IsValid」を使いましょう!
IsValidは、
InputObjectの値がレベル上に存在していれば、IsValidに。
存在してなければ、IsNotValidに。
というノードです。
これを間に挟んであげればエラーが出なくなります!
とりあえず、キャスト以外にも他のアクターにインタラクションを起こす方法があることが分かったかと思います!
ぜひ、ご活用くださいまし!
それではまた!^^ノシ