Dialogue System for Unity
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がモバイル想定なのだろうが、タッチの範囲がよくわからない。。。