本日は DialogueSystem の勉強枠です。
DialogueSystemのクィックスタートを試してみたので手順を記事にします。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
会話のタイミングを変更する
NPC をマウスクリックしたときに会話が始まるようにしてみます。
Dialogue System Trigger コンポーネントの[Trigger]ドロップダウンを[On Use]に設定します。
On Use メッセージを発生させるために NPC オブジェクトに Usable コンポーネントを追加します。
[Max Use Distance]を[30]に設定します。
これで距離が 30 以内なら On Use メッセージを発生させることができます。
次に Player 側で選択操作を行うため、Selector コンポーネントを追加します。
[Select At]を[Mouse Position]に設定します。
これでマウス操作で選択操作が行えるようになります。
動作確認
シーンを再生して動作を確認します。
NPC オブジェクトにマウスを重ねると、オブジェクトの上に黄色のメッセージが表示されます。
これは Player の Selector コンポーネントが NPC の Usable コンポーネントを検出した状態です。
このとき、スペースキーまたはマウスの右ボタンをクリックすると Selector コンポーネントが On Use メッセージを NPC に送信します。
これにより会話が開始されます。
会話中の操作を制御する
会話中に他の操作が発生してしまわないよう会話中の制御を行ってみます。
今回は Selector を無効化して会話中にオブジェクトの選択を行えないようにしてみます。
会話中の制御を行うには Dialogue System Events コンポーネントを利用します。
今回は Player オブジェクトに Dialogue System Events コンポーネントを追加します。
[On Conversation Start]イベントが会話開始時のイベント、[On Conversation End]イベントが会話終了時のイベントになります。
これを利用して会話開始時に Selector コンポーネントを無効化し、終了時に有効化するといった制御を設定できます。