morninoon
(morninoon)
1
NPCに近づいた状態でクリックすると会話が始まるブループリントを組みたいです。
NPCの周囲にColisionBoxを配置して、
「プレイヤ(ThridPersonCharacter)が近づく」&「そこでクリックする」と、
NPCが持っている会話データをセットして、プレイヤー側のイベント(StartDialog)を実行するブループリントを組みました。
こうすると、StartDialogイベントは正常に実行されますが、
一度近づいてから離れた後、どこでクリックしても会話が始まってしまいます。
NPCの近くにいるときだけ、クリックして会話が始まるようにしたいのですが、どうしたらよいでしょうか。
できればNPC側のブループリントの変更で解決したいです。
1 Like
morninoon
(morninoon)
2
補足:BindしてるInputDialogはThirdPersonCharacter側で呼び出してるイベントディスパッチャーで、単にクリックを呼び出しています。
LunaNelis
(ネリスさんMain)
3
イベントのバインドは、明示的に解除しないかぎり永続してバインドされ続けます。
CollisionBoxのOnEndOverlapイベントで「InputDialogイベント」のバインドを解除というノードを追加してみてください
当たり判定から離れたときにイベントのバインドが解除され、クリックでイベントが呼ばれなくなるはずです。
1 Like
morninoon
(morninoon)
4
ありがとうございます!
なるほど、解除が必要なんですね。
EndOverlapでUnbindすることで意図通りの動きに修正できました!
1 Like
LunaNelis
(ネリスさんMain)
5
余談ですが、この処理のままの場合
2人のNPCの判定に重なる部分にプレイヤーがいると同時に会話が始まってしまう問題があります。
これはイベントへのバインドは1度に複数可能なため起こることなので、一応覚えておくといいかもしれません。
1 Like
morninoon
(morninoon)
6
補足ありがとうございます!
なるほどですね。助かります^^