【Unity】アセット「Dialogue System for Unity」でProximity SelectorをUIボタンで対応する

title ゲーム開発

Dialogue System for Unity

Unityにダイアログシステムをノーコードで導入出来るアセット。

ノーコードで簡単そうに見えるが、機能がありすぎて初心者には少し分かりづらいのが難点。

Dialogue System for Unity

Dialogue System for Unity

前置き

Proximity Selectorとは、インタラクションするオブジェクトに接近した際に指定されたボタンを押すとOnUse Messageを送ることが出来るスクリプト。基本的にPlayer(操作キャラ)に付ける。

そのOnUse Messageを送ることで、インタラクションオブジェクトからDialogue Managerにアクセスしてダイアログを表示できるという仕組みになっている。(細かいところは違うかもしれないが)

詳しくは↓

Dialogue System for Unity: Triggers & Interaction

して、このProximity Selectorだがインスペクターだとこんな感じになっている。

インスペクターの図

見て貰えば分かると思いますが、指定されたボタンというのが、UseKeyとUseButtonの欄になります。

これらはモバイルだとほぼ使わない機能(タッチ操作)なので、自分で作成したUIのボタンを指定したいところ。

なので、自作のスクリプトで指定してみようということです。


やり方

インタラクションするオブジェクト側のスクリプトです。

[SerializeField] GameObject player;

public void OnUseMessage()
{
     SendMessage("OnUse", player.transform);
}

playerはProximity Selectorを付けたオブジェクトをインスペクターからアタッチ。

あとは対応させたいボタンのスクリプトやイベントからOnUseMessage()を呼び出せばいいです。

おわりに

本来Proximity SelectorのEnable Touchがモバイル想定なのだろうが、タッチの範囲がよくわからない。。。