SwitchでWidgetブループリントを入れ替えられますか?

親がActorのBPを作成し、ボックスコリジョンをビューポートに配置したものをレベルに配置しました。

このボックスコリジョン内に入るとゲームパッドのXボタンを押すとAというWidgetブループリントが表示される。
さらにもう1回Xボタンを押すとAというWidgetブループリントが取り除かれ、BというWidgetブループリントが表示される。
さらにもう1回Xボタンを押すとBというWidgetブループリントが取り除かれ、プレイ画面に戻る
ということをしたいのですが、

Aの表示まではOKなのですが、それ以降の処理ができていないようなので、ブループリントの間違っているところをご指摘いただけますか?

こんにちは。

こちら「整数型でスイッチ」のSelectionが0から変化する手段がないため、Selection=0の処理(Aの表示)しかされないのかなと思いました。

  • Integer変数を作成し、「整数型でスイッチ」のSelectionと繋げる
  • 処理が行われるたびに、Interger変数の値を+1する

これで想定通りの処理になりますでしょうか。

ご指摘有難うございます。

・Integer変数を作成し、「整数型でスイッチ」のSelectionと繋げる
・処理が行われるたびに、Interger変数の値を+1する
を追加してみました。

うまくいっていないところあります。
質問させていただけますでしょうか?

Xボタンを押して、A表示、もう1度XボタンをしてAを取り除いてにしてB表示、もう1度ボタンを押してBを取りのぞかれて プレイに戻る
この1連の流れはとりあえずできたのですが、Bが取り除かれてプレイに戻った後に、ボックスコリジョンから1度外にでない状態でそのままXボタンを押すと、なぜがAでなくBが表示されるのです。

A表示 → Aを取り除きB表示 → Bを取り除きプレイ画面表示 → B画面表示 になってしまっています。

ボックスコリジョン内にいる間、A表示 → Aを取り除きB表示 → Bを取り除きプレイ画面表示 → A表示 を繰り返すようにしたいというのが1つあります。

Aから再度表示したいのですが、どこが間違っていますでしょうか?

また、もう1つは、ボックスコリジョンに入っている状態ではずっとXボタンを押すと図面が表示されてしまいます。

A表示 → Aを取り除きB表示 → Bを取り除きプレイ画面表示をボックスコリジョンないにいても1回だけしか行わない場合はDoOnceをキャストの前に入れる感じでしょうか?

追加したcount変数の初期値はAが0なので-1にしています。

現在じっくり考える時間がないため、回答にならない文章で申し訳ありません。

(1)再度実行するとB表示が走る件

Switchの前にPrintStringを配置し、変数Countの値を確認してみるのはいかがでしょうか。一連の動作の後、なんらかの原因でCount=0にできなかったので、A表示の処理が走らなかったと推測します。

(2)ボックスコリジョンに入っている状態ではずっとXボタンを押すと図面が表示されてしまいます

すみません、「図面」とはなにを指しますか? 今までの文章から図面を指すものが推測できませんでした。
ボックスコリジョン内で1度しか処理を走らせたくないなら、

  • Bool型変数を作成する(初期値True、ボックスコリジョン内での処理が終わったらFalseに)
  • ボックスコリジョンから離れる際にBool型変数をTrueに戻す

という仕組みがあればいけるのかな…と思いました。

返信いただき有難うございます。
お時間のない中すみません。

アドバイスいただいた(1)のスイッチの前にPrintstringを配置して確認してみました。
やはりBを取り除いてプレイ画面に戻った後に、再度Xボタンを押すとCountが0でなく1になってしまっているようです。
スイッチの最後につけているCountのセットの値を現状-1なので0や1にして試してみましたが、やはり結果は同じでした。
countの変数の初期値を0にしてみましたが、今度はAが表示されずいきなりBから表示されてしまいました。
なのでcount変数の初期値は-1でないとAgaが表示されないのでこれも0でなく-1でないとAが表示されない理由もよくわかりません。

(2)の図面という表現ですが、すみません、Widgetと置き換えてください。
widgetのImageにちょっとした図面を適用しています。
そのため、図面と記載してしまいました。