~会話・バトルシステム~
今回の目標
・村人と接触した時にUIで会話文を表示できるようにする。
・タイルマップを広げて、コリジョン付きマップを作成する。
・カメラ追従と敵表示、戦闘シーン遷移の土台を作成。
現状の設定だと、村人に接触した際に「押し出される」。
これを解消するために「Rigidbody⇒Bodytype」を変更する。

この設定では、村人は動かなくなるが、接触時にプレイヤーが回転してしまう。
Rigidbody ⇒ Costraints ⇒ Freeze Rotation に☑。これで衝突時に回転しなくなる。

それで、現状の設定では当たり判定が大きすぎて、画像と乖離しているので値を修正する。
BoxCollider ⇒ Size のX、Yを調整。今回は0.16。…小さすぎたので0.48(48dot)にあとで修正(笑)

会話UIの準備
Canvasを追加(Screen Space – Overlay)
Imageでフレーム表示(会話ウインドウ用の画像を使用)
Text(TextMeshPro)で文字表示
文字は仮で「こんにちは!」など固定でOK。
Canvasを追加。
Hierarchy(右クリック)⇒UI⇒Canvas。

Hierarchyに追加されたCanvasに、メッセージウインドウのアセットをドラッグ&ドロップ。

TextMeshProをCanvasに追加。
Canvasを右クリック⇒UI⇒Text-TextMeshPro。

Inspector上の「TextInput」に表示したいテキストを入力。

日本語表示には別途フォントが必要。
アセットに追加する。

Window⇒TxtMeshPro⇒FontAssetCreatorで使うフォントの設定をする。
Character Set を Custom Characters に設定。これで利用する文字を登録できるようになる。

利用する文字を登録する。CustomCharacterListに使う文字をペーストしたら、GenerateFontAtlasをクリック。

終わったら「Save」。適当なフォルダに保存する。

Text(TMP)を選択したらInspecor上で「Font Asset」を先ほど作成したアセットに設定する。

日本語表示ができた。

コメント