Npcに近づく&クリックで会話を始めたい

NPCに近づいた状態でクリックすると会話が始まるブループリントを組みたいです。

NPCの周囲にColisionBoxを配置して、
「プレイヤ(ThridPersonCharacter)が近づく」&「そこでクリックする」と、
NPCが持っている会話データをセットして、プレイヤー側のイベント(StartDialog)を実行するブループリントを組みました。


こうすると、StartDialogイベントは正常に実行されますが、
一度近づいてから離れた後、どこでクリックしても会話が始まってしまいます。
NPCの近くにいるときだけ、クリックして会話が始まるようにしたいのですが、どうしたらよいでしょうか。
できればNPC側のブループリントの変更で解決したいです。

1 Like

補足:BindしてるInputDialogはThirdPersonCharacter側で呼び出してるイベントディスパッチャーで、単にクリックを呼び出しています。

イベントのバインドは、明示的に解除しないかぎり永続してバインドされ続けます。

CollisionBoxのOnEndOverlapイベントで「InputDialogイベント」のバインドを解除というノードを追加してみてください

当たり判定から離れたときにイベントのバインドが解除され、クリックでイベントが呼ばれなくなるはずです。

1 Like

ありがとうございます!
なるほど、解除が必要なんですね。
EndOverlapでUnbindすることで意図通りの動きに修正できました!

1 Like

余談ですが、この処理のままの場合
2人のNPCの判定に重なる部分にプレイヤーがいると同時に会話が始まってしまう問題があります。

これはイベントへのバインドは1度に複数可能なため起こることなので、一応覚えておくといいかもしれません。

1 Like

補足ありがとうございます!
なるほどですね。助かります^^