Map上にあるオブジェクトにTagをつけて、特定のTagのついたオブジェクトを取得したいのですが、
Tagのつけ方と、Tagの違う複数のオブジェクトを取得する方法を確認させてください。
①まずTagのつけ方ですが、
赤いオブジェクトのTagのIndex0にredとつけました。
次に緑のオブジェクトのTagをつける時ですが、Index0にgreenとつけてしまうと
index0を取得した時に、redとgreenの2つとも取得されてしまうということで大丈夫でしょうか?
2つとも取得されたくない場合はIndex0以外にtagをつけるということで大丈夫でしょうか?
その際ですが、緑のオブジェクトのtag1にgreenとつけた場合、tagのIndex0はNoneのままでよいということで大丈夫でしょうか?
②TagのIndex0番とIndex2番を一緒に取得したい場合ですが、キャプチャのBPのようにTagのIndex0とIndex2を取得して非表示にするというようなことをしたいのですが、
プレイしても反応がありませんでした。
Index番号を複数取得する方法はキャプチャの方法では間違っていますでしょうか?
現在実装しているTagの使い方は本来の使い方ではなく、そのため処理が非常に煩雑になっているように見受けられます
まず、Indexは考えないでください
煩雑になる一番の原因はそこです
必要なのはどのIndexにどのTagが入っているかではなく、Objectに特定のTagがつけられているか?です
Tagは必要なものだけつけてください
例えば赤いObjectであれば ”red" だけつけましょう
Indexを合わせるためだけにNoneで埋めるのはナンセンスです
Noneにそこまで重要な意味があるわけではないですよね?
Actorが特定のTagを持っているかは ActorHasTag
ノードを使います
ObjectとTagを渡せば、そのTagを持っているかをBoolで返してくれます
特定のTagを持つActorをすべて取得したい、というときは、 GetAllActorsWithTag
ノードを使いましょう
これもTagを渡すだけで、そのTagを持っているActorのReference配列を返してくれます
なお、返されるのはActorの配列なので、特定のClassでなければならない場合はそこからCastすれば良いでしょう
おそらく見たのは公式ドキュメントだと思いますが、この内容そのままを実用することはできません
コードの内容が使い方の説明のためだけの全く意味のないものになっています
公式ドキュメントが修正されることも期待しておりますが、サンプルが間違っていることはよくあるので、思い通りにならないときは落ち着いて一つ一つ検証してみることも重要です
https://api.unrealengine.com/JPN/Gameplay/HowTo/FindingActors/Blueprints/index.html
回答いただきまして有難うございます。
TagにつけたNoneは、おっしゃる通りIndexを合わせるためだけに付けているだけで、特に意味はないものです。
Tagは必要なものだけという教えていただいたことを元に再度やりなしてみました。
redのマテリアルのオブジェクトのIndex0にred
greenのマテリアルのオブジェクトのIndex0にgreen
yellowのマテリアルのオブジェクトのIndex0にyellow
Actor Has TagにTagピンにTagにつけた値を入力してプレイしてみました。
入力したTagのものが表示・非表示することができたので、これで大丈夫でしょうか?(キャプチャつけました)
次に、GetAllActorsWithTagを使ってやってみましたが、すみません使い方がよく分かりませんでした。
>これもTagを渡すだけで、そのTagを持っているActorのReference配列を返してくれます
なお、返されるのはActorの配列なので、特定のClassでなければならない場合はそこからCastすれば良いでしょう
この部分が理解できておりません。
とりあえずやってみたものをキャプチャをアップいたします。
複数のTagを取得する方法が理解できておりません。
greenだけであれば、GetAllActorsWithTagのTagに直接greenと入力することで、greenだけの処理は大丈夫でした。
しかし、greenとyellowというように1つ以上の場合の取得方法が理解できておりません。
ご教示いただけますでしょうか?
ただのAnd条件です
下記のいずれかの条件を満たせるようにBranch等を使用して条件分岐してください
-
greenというタグを持っている
と yellowというタグを持っている
がどちらもTrueであること
-
yellowというタグを持っているObject
が greenというタグを持っている
こと
回答有難うございます。
教えていただいたことを考慮して修正し確認してみました。
一応複数のTagでの表示非表示はできたようなのですが、これで大丈夫でしょうか?
キャプチャつけておきます。
タグを2つ持っている場合、ではなかったのですね
どちらか片方該当するものを持っている場合、であれば添付のノードで問題ないと考えます
度々の質問に回答いただきまして有難うございます。
説明がうまくできておらずすみません。
教えていただいたANDの方も状況的に考えられるので試してみたいと思います。
有難うございました。