Unityに関連する記事です

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

13.Canvas内にUI部品を作成する(キャラの名前を表示するウインドウを用意する)
14.enum(列挙型)クラスを作成し、キャラの名前を登録する
15.メッセージ表示用のスクリプトを作成するァ壁充┐気譴討い襯瓮奪察璽犬汎唄する形でキャラの名前を表示する)


13.Canvas内にUI部品を作成する(キャラの名前を表示するウインドウを用意する)

 
 Cancas内のMessageWindowにメッセージ表示中のキャラの名前を表示できるようにしていきます。

 MessageWindow上にてメニューを表示し、 UI => Image を選択し、名前を imgCharaName に変更します。
こちらは名前表示の背景イメージになります。




 続いて、作成したimgCharaNameゲームオブジェクトの上でメニューを表示し、 UI => Textを選択、名前を txtCharaNameType に変更します。
こちらがキャラの名前を表示するTextになります。




 ヒエラルキー上は以下のような状態になっているか、確認してください。



TextのOutlineをキレイに表示する


 Githubに公開されているCircleOutline.csを利用してみましょう。
このスクリプトをtxtCharaNameTypeゲームオブジェクトにアタッチすることで、文字の輪郭をキレイに表示してくれる機能が追加されます。

CircleOutline.cs

https://gist.github.com/FreelyApps/e9f3f4a4d89882b...

 
 設定方法は、EffectDistanceの数字を4〜8前後にし、N Effect Numberも4〜12前後にすると文字の輪郭を縁取ることが出来ます。
あまり数字が大きいと文字自体がつぶれてしまうため、読みやすくて綺麗なアウトラインになるように色々と試してみましょう。



14.enum(列挙型)クラスを作成し、キャラの名前を登録する


 ゲームに登場するキャラクターの名前を毎回記述していては大変です。そこで列挙型という機能を使ってゲームに登場するキャラの名前を作成し、登録しておきましょう。 
毎回文字列で指定していては打ち間違いによるエラーも起こりやすいですが、Enum型で指定した場合、登録されている内容でしか選択が出来なくなりますので間違えることもなくなります。

 この機能を使い、会話中のキャラの名前を表示したり、後で実装するキャラのイメージ画像を表示させる際に利用していきます。

 Scriptsフォルダ内でメニューを表示し、Create => C# Script を選択、名前を CHARA_NAME_TYPE に変更します。enumのみのスクリプトのため、他のスクリプトとは異なりclassではありません。こういった場合は、ファイル名をすべて大文字などにしておくことで、他のスクリプトとの差別化が図れます。
もちろん、他のスクリプトと同じ命名規則で名前をつけても問題はありません。
 

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


 このスクリプトは他のスクリプトとは違い、MonoBehaviourクラスを継承していません。そのためゲームオブジェクトにアタッチすることはできませんが
MonoBehaviourを継承していないこのenumは、変数に代入しなくても、どのクラスからでも参照が出来ます。実際に使ってみて試してみましょう。

15.メッセージ表示用のスクリプトを作成するァ壁充┐気譴討い襯瓮奪察璽犬汎唄する形でキャラの名前を表示する)


 【13】で作成したキャラの名前を表示するTextコンポーネントと、メッセージ表示用のスクリプトであるTextMessageViewerスクリプトとを紐づけして
メッセージの表示に合わせて、キャラの名前を表示するようにします。

 TextMessageViewerを修正していきますので、ダブルクリックしてTextMessageViewerスクリプトを開いてください。
修正箇所はなく、publicのメンバ変数の宣言を2つ追加し、DisplayMessageメソッド内にメッセージに合わせてキャラの名前を表示する処理の追加があります。
ここでは該当の箇所のみを抜粋して記載してあります。

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


 エラーがなく記載できたらTextMessageViewerゲームオブジェクトのインスペクタ−を確認しましょう。
publicで追加した項目が2か所増えているはずです。



 まずはcharaTypesにキャラの名前を仮登録して、処理が正常に動くかどうかをデバッグをしましょう。
charaTypesはMessagesと同じで配列になっていますので、はじめはSize 0 に設定されています。
SizeはMessagesの値と同じ数に設定をします。画像例の場合、MessagesのSizeが 3 ですので、charaTypesのSizeも 3 に設定します。

 Elementが0〜2まで追加されますので、こちらはプルダウンメニューになっていて、Enumで作成したキャラの名前を選択出来るようになっています。
まずは適当に選択しましょう。このElementの番号とMessagesのElementの番号とがリンクしています。

 続いて、txtCharaTypeの部分に、キャラの名前を表示させたいTextコンポーネントがアタッチされているゲームオブジェクトをアサインします。
ヒエラルキー上にあるtxtCharaNameTypeゲームオブジェクトをドラッグアンドドロップしてアサインしましょう。

 これでキャラの名前を表示させる処理と、表示させるTextコンポーネントとが紐づけされました。
 



 実行して、メッセージの数に合わせてキャラの名前が表示され、次のメッセージの表示に合わせて
キャラの名前が変更されているかどうかを順番に表示させて確認をしてみましょう。


https://gyazo.com/d4fb383bd7b2c85cfe34919a576a4b62

コメントをかく


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

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

Menu



技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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