[UNITY] NaniNovelのコマンドをC#から実行する方法 | 『くつひも物語』開発日誌 #93

PlayScriptコンポーネントで事足りるならそれでいい

NaniNovelにはPlayScriptというコンポーネントが用意されていて、インスペクターウインドウからコマンドを直接入力して実行することができます。

これはPlayScriptに入力したコマンドをUNITY純正のボタンコンポーネントのOnClickイベントに割り当てている画像です。

もちろん、ボタンコンポーネントではなくC#から直接実行することも可能です。

その場合は、事前にPlayScriptコンポーネントにインスペクターウインドウからテキストを入力しておいて、そのPlayScriptをGetComponentして、

playscript.Play();

という風に実行することができます。

コマンドもC#から指定したい場合

いちいちPlayScriptコンポーネントをアタッチしたオブジェクトを用意しておいて、インスペクターウインドウからテキストを直打ちするなんて………そんな原始人みたいなことできるか! 俺たちは現代を生きる文明人だぞ!!

…という人は、PlayScriptクラスをオーバーライドするカスタムクラスを作りましょう。

インスペクターウインドウから入力するテキストは、PlayScriptクラスのなかのscriptTextという変数なのですが、privateになっているので、継承クラスからも通常は触れません。

かといって、アセットに含まれるクラスを修正するのは恐いですよね。

そのため、超無理矢理ですが、リフレクションを使って壁抜けをして(これも恐い)private変数にアクセスすることでコマンドをC#から実行します。

以上!