本日は DialogueSystem の勉強枠です。
DialogueSystem のトリガーとインタラクションを確認しながら記事にします。
今回はその他のトリガーコンポーネントについてです。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
Range Trigger
Range Trigger コンポーネントを使用してゲームオブジェクトをアクティブ化し、指定された条件が満たされたときにコンポーネントの OnTriggerEnter を有効にします。
OnTriggerExit が発生すると、ゲームオブジェクトは非アクティブ化されてコンポーネントは無効になります。
このコンポーネントはプレイヤーがNPCの近接を表すトリガーコライダーに入ったときにのみ、Bark On Idle などのコンポーネントを有効にするのに役立ちます。
また、開始時と終了時に実行する UnityEvents を設定することもできます。
Dialogue System Events
Dialogue System Events コンポーネントはダイアログシステムアクティビティが発生したときに UnityEvents を実行します。
各フィールドにはゲームオブジェクトが対応するメッセージを受信したときにコンポーネントが処理できるイベントのセクションがあります (OnConversationStart など)。
OnConversationStart などの多くのイベントは 2 人の会話参加者とダイアログマネージャーでのみ呼び出されることに注意してください。
会話参加者に関係なくイベントを実行する場合はダイアログマネージャに Dialogue System Events コンポーネントを配置します。
Selectors & Usables
ダイアログシステムは Usable コンポーネントを持つゲームオブジェクト (NPC など) と対話できるインタラクションシステムを提供します。
プレーヤーには次の 2 つのコンポーネントのいずれかを追加できます。
Selector
Selector コンポーネントはマウスの位置や画面の中央など、指定された位置からのレイキャストによって Usables を検出します。
プレイヤーがボタンを押すと対象に OnUse メッセージが送信されます。
注: 2D モードでは、カメラは正投影である必要があります。
画像は https://www.pixelcrushers.com/dialogue_system/manual2x/html/triggers_and_interaction.html より引用
Proximity Selector(近接セレクター)
Proximity Selector コンポーネントはトリガーコライダーに入るときに Usables を検出します。
プレイヤーがボタンを押すと、対象に OnUse メッセージが送信されます。
画像は https://www.pixelcrushers.com/dialogue_system/manual2x/html/triggers_and_interaction.html より引用
Selector/Proximity Selectorの UI 要素
Selector または Proximity Selector を追加すると、ダイアログシステムは Selector Use Standard UI Elements コンポーネントを追加するかどうかを尋ねます。
このコンポーネントにより、Selector または Proximity Selector はダイアログマネージャープレハブに割り当てられている Unity UI を使用するか。
割り当てられていない場合はシーン内で見つかった Standard UI Selector Elements ゲームオブジェクトを使用できます。
標準UIのスタイルを変更する場合はプレハブを見つけて複製し、インスタンス化プレハブコンポーネントに割り当てて複製をカスタマイズします。
または、必要に応じてプレハブのインスタンス化リストからプレハブを削除し、標準UIプレハブのインスタンスをシーンに直接追加します。
OnUseメッセージ
プレイヤーが Usable をターゲットにしてキーまたは ボタンを押すと、Selector は Usable ゲームオブジェクトにメッセージを送信します。
Dialogue System Trigger コンポーネントなどのダイアログシステムのトリガーはこのメッセージに応答します。
独自のスクリプトは次のような OnUse メソッドを追加することで、このメッセージを受け取ることもできます。
void OnUse(Transform player) { Debug.Log("I'm being used by " + player); }
Usable は選択、選択解除、および使用時に実行される UnityEvents を持ちます。
これらのイベントはインスペクターで設定できます。
次は Bark と2D物理演算サポートについてです。
bluebirdofoz.hatenablog.com