本日は DialogueSystem の勉強枠です。
DialogueSystem のダイアログエディタの使い方を確認しながら記事にします。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
デフォルトの OnExecute()
シーンオブジェクトを既定の OnExecute() イベントに割り当てることはできません。これは Dialogue System データベースがシーンとは独立して存在するためです。
代わりに、プレハブや ScriptableObject などのアセットファイルを割り当てる必要があります。
次の例ではオーディオクリップを再生する方法を提供する ScriptableObject アセットを作成しています。
そのメソッドをダイアログエントリの OnExecute() イベントに割り当てます。
まず次のコードを含む TestScriptableObject という名前の新しい C# スクリプトを作成します。
using UnityEngine; [CreateAssetMenu(fileName = "TestScriptableObject")] public class TestScriptableObject : ScriptableObject { public AudioClip[] audioClips; public void PlayAudioClip(int i) { AudioSource.PlayClipAtPoint(audioClips[i], Vector3.zero); } }
次に[Project]ビューで右クリックから[Create -> TestScriptableObject]を選択します。これによりアセットファイルが作成されます。
アセットを Resources という名前のフォルダーに移動することでビルドに含めることができます。
Unity の一部のバージョンまたは一部のプラットフォームでは、必要ないと判断されたアセットが削除されることがあります。
これはどのシーンでも参照されていない ScriptableObject アセットでよく発生するので注意が必要です。
作成したアセットファイルのInspectorビューを開き、オーディオクリップを割り当てることができます。
最後にエントリノードの OnExecute() イベントの[+]ボタンをクリックして TestScriptableObject を割り当てます。
実行するメソッド (PlayAudioClip) を選択し、再生するオーディオクリップのインデックスを指定します。
これでエントリノードが再生されたタイミングで指定のオーディオが再生されるようになります。
シーンベースの OnExecute()
[Add Scene Event]をクリックすると、シーンオブジェクトを割り当てることができる2つ目の OnEecute() イベントが追加されます。
実際の UnityEvent は現在のシーンに存在するため、データベースのエクスポート機能と互換性があります。
アウトラインエディタ
アウトラインモードで会話を編集することもできます。これは Bioware の Aurora ツールセットのようなエディタのユーザーにとっては馴染みがあるかもしれません。
アウトラインモードに切り替えるには[Menu -> Outline Mode]を選択します。
次回は Templates と Watches カテゴリについてです。
bluebirdofoz.hatenablog.com