【Dialogue System for Unity】の使い方~その6~テキストスキップの改良-テキストフィールドで-~

テキストスキップ Unity
スポンサーリンク

前書き

前回はテキストスキップの方法を紹介しましたが、使い方としては「スキップボタンを押してテキストスキップする」という方法になります。ゲームをする上で毎回スキップボタンを押すのはちょっと面倒に感じるかなと思います。

今回はほかのゲームでもあるように「テキストフィールドをクリックすることでテキストスキップをする」方法について紹介しようと思います。

前回のDialogue System for Unityを使い方については以下をご確認ください。

Dialogue System for Unityのテキストスキップ

前回紹介した内容の振り返りになりますが、Dialogue System for Unityのテキストスキップは以下のようにテキストフィールド右下に存在します。このボタンをクリックすることでテキストスキップができる作りになっています。

テキストスキップボタン

そのため、このテキストスキップボタンの使われ方を参考にして、テキストフィールドにテキストスキップボタンと同じ処理を追加してあげれば同じようにスキップする処理を設定することができます。。

テキストスキップの処理

では早速、テキストスキップボタンの処理を見ていきましょう。
テキストスキップボタンは(Basic Standard Dialogue UIを参考に)以下に設定されています。テンプレートによって場所は若干異なりますが「Continue Button」でオブジェクト検索をしてもらえれば見つかると思います。

Basic Standard Dialogue UI
 -> Dialogue Panel
  -> PC Subtitle Panel(またはNPC Subtitle Panel)
   -> Continue Button

テキストスキップボタンのインスペクター

ButtonのOnClick()を見てみると「StandardUIContinueButtonFastForward.OnFastForward」が設定されていますね。これが「テキストメッセージをスキップする処理」になります。

デフォルトの設定だとContinue ButtonにのみStandardUIContinueButtonFastForward.OnFastForwardが設定されています。

そのため、この上記処理をテキストフィールドにも設定してあげることでテキストフィールドをクリックすればテキストスキップができるようになります。

テキストフィールドにテキストスキップ機能を追加する

以下がテキストフィールドにButtonStandardUIContinueButtonFastForward.OnFastForwardを適用した形になります。

やり方はいろいろありますが私の場合は以下のようにスクリプトを設定しています。

  1. StandardUIContinueButtonFastForwardコンポーネントを新しくStandard Dialogue UI と同じ場所に設定
  2. テキストフィールド(Subtitle Text)にButtonコンポーネントを新しく設定
  3. Buttonコンポーネントの On Click に1.で設定したStandardUIContinueButtonFastForwardのOnFastForwardを設定する

【補足】
 1.でStandardUIContinueButtonFastForwardをStandard Dialogue UI と同じ場所に設定していますが、これは私の場合ですので設定する場所はお好みで大丈夫ですし、そもそもContinue ButtonにStandardUIContinueButtonFastForwardが設定されていますのでそちらを再利用する形でもOKです。

追加した時の動画

テキストフィールドにStandardUIContinueButtonFastForwardのOnFastForwardを追加した状態で動作確認をしてみましょう。以下のようにテキストが途中で表示されるときにテキストフィールドをクリックすることでテキストが表示されるようになると思います。(使っているテンプレートがBasic Standard Dialogue UIと異なりますが読み替えてご確認ください。)

まとめ

今回はDialogue System for Unityでテキストをスキップする方法-テキストフィールドで-について紹介しました。

毎回Buttonを押させるのがちょっと面倒だなっと思ったときに参考にしていただければいいかなと思います。また、今回はテキストフィールド上でOnFastForwardを設定しましたが、テキストフィールド以外のところにも同様に設定すればいろいろなところでテキストスキップをすることが可能です。

Dialogue System for Unityはとても難しいアセットですがちょっと工夫することでいろいろなことができたりします。まずはテンプレートを参考にいろいろ改造してみましょう。

コメント

タイトルとURLをコピーしました