Unityに関連する記事です

 以下の内容を順番に実装していきます。

 なおこれ以降の実装にはかなり時間がかかりますので、ゆっくり処理を理解しながら進めてください。

 7.DoTweenをインポートして設定する
 8.メッセージ表示用のスクリプトを作成する◆癖源列が1文字ずつ文字送りされるようにする)
 9.メッセージ表示用のスクリプトを作成する(文字送り中にタップした場合、1ページ分すべてのメッセージが表示されるようにする)


7.DoTweenをインポートして設定する


 DoTweenはUnityのアセットストアにて無償で公開されている、Tween系アセットです。
アセットストアにサインインして、検索でDoTweenと入力すれば見つかります。Pro版(有償)もありますが、無償版で問題ありません。



直接のリンクアドレスはこちらです。
https://assetstore.unity.com/packages/tools/animat...

 ダウンロードしてインポートしてください。インポート設定はそのままで問題ありません。
インポートされるとProject内にDemigiantというフォルダが追加されます。こちらがDoTweenアセットのフォルダになります。

 インポート後、DOTween Utility Panelという、DoTweenの設定用のポップアップウインドウが自動的に開きますので、Setup DOTweenボタンを押して実行しましょう。
もしも自動で開かない場合には、Unityの左上のメニューより Tools => Demigiant => DOTween Utility Panel を選択すればウインドウを開くことが出来ます。



 準備用のポップアップがさらに開いて、準備が完了するとApplyボタンが押せるようになります。



 これでDoTweenの準備が完了し、Unityで利用できるようになりました。先ほどのDOTween Utility Panel ウインドウは閉じてしまって問題ありません。

 なおDoTweenには様々な機能がありますが、今回の製作ではその一部を利用していきます。
詳しい説明は公式リファレンス、あるいは多くの使用方法の紹介記事がありますので、ご自分で調べてみてください。

公式サイトのリンク(ドキュメント)
http://dotween.demigiant.com/documentation.php
 

8.メッセージ表示用のスクリプトを作成する◆癖源列が1文字ずつ文字送りされるようにする)


 それでは早速インポートしたDoTweenを利用していきましょう。今回使いたい機能はDoTextという機能です。
これはTextコンポーネントに文字列を表示する際に、指定した時間に合わせて文字を1文字ずつ表示していく機能です。文字送りに最適です。
(この機能は無償版でも利用可能です。)

 先ほど作成したTextMessageViewerスクリプトでは、メッセージの表示は一度に1ページ分まとめて表示されていましたので
そちらを、このDoText機能を利用して、1文字ずつ順番に表示する処理に修正していきます。

 TextMessageViewerをダブルクリックして開いて、スクリプト内のコードを修正しましょう。

 <= クリックするとサンプルコードが開きます。


 スクリプトを修正しましたらセーブします。エラーがなければ、TextMessageViewrゲームオブジェクトのインスペクターを確認しましょう。

 先ほどのスクリプトにpublicの項目が1つ増えました。wordSpeedという値の入力ができるようになっているはずです。
これは1文字を何秒かけて表示するか、時間の設定です。
インスペクターを確認してまずは0.5と入力してみましょう。この数値は読みやすさに関わってきますので適宜調整してください。
 


 こういった項目はpublic変数にしておいてインスペクター上で変更できるようにしておくと利便性が高いです。Debugも容易になります。

 また先ほど文字を設定したMessagesのSizeが0に戻っていないか確認しましょう。表示する文字の入力がない場合、エラーでゲームが止まってしまいます。

 問題なく動作した場合には、次のような挙動になります。キレイに1文字ずつ、ちゃんと表示されるようになります。
 
https://gyazo.com/f44cf6228715cc3194ef5ebe4ccfa34a

9.メッセージ表示用のスクリプトを作成する(文字送り中にタップした場合、1ページ分すべてのメッセージが表示されるようにする)

 続けて、TextMessageViewerスクリプトを編集していきましょう。

 今度追加していく処理は、1文字ずつ文字送りされて文字が表示されている間に画面をクリック(タップ)した場合に
表示中の1ページ分のメッセージをまとめて表示するという機能です。こちらもよく見かける機能ですね。

 文字送り中にクリックで1ページ表示し、1ページ表示中にクリックしたら次のメッセージがまた文字送りで表示され始めるという仕様になります。
こちらもスクリプトを修正・追加することによって機能を追加していきます。

 タップしてメッセージをまとめて表示した場合と、文字が全部表示されるまで待っていた場合とのクリックの挙動は同じになるようにします。

 なお、While文を使用しますので記述する際には充分気を付けてください。
正確に書かないと無限ループに陥ってゲームだけではなく、Unity自体が動かなくなります。

 TextMessageViewerをダブルクリックして開いて、スクリプト内にコードを記述していきます。

 <= クリックするとサンプルコードが開きます。


 publicで追加した変数はありませんので、インスペクタ−での設定項目に変更はありません。

 ここではDoTweenの処理をTween型の変数に入れて処理を行うように変更しています。文字送り処理自体には変更はありませんが
このように変数に代入して使用することにより、Tweenによる文字送りの処理を途中で停止(Kill処理)させることが出来るようになります。
(変数に代入して使用しないと途中でTween処理を停止できません)

 コルーチン処理についても同様です。この処理は、文字送りの処理にかかる時間に合わせて、次の処理に移らないようにする疑似的な待機の処理です。
こちらもそのまま処理を行ってしまった場合、途中でTweenが停止した場合でも指定されている待機時間を常に待ってしまうようになります。
そこでコルーチンについても変数を用意し、そちらを使って処理を行うことで、Tweenと同じように処理を途中で停止(StopCoroutine)出来るようになります。

 この2つの処理を上手く合わせることによって、クリックによって文字送りの処理を停止させつつ、一度に1ページ分のメッセージを表示できるようにしています。

 それでは実行して試してみましょう。下記の動画ように、クリックした場合には1ページ分すべてのメッセージが表示されるようになれば成功です。

https://gyazo.com/f54706a5b0703ef8f8a7ce60e389631c

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます