Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。0今回は敵キャラクターのHPを頭上に表示し、キャラクターと一緒に移動するUIを作成します。どの程度のHPが残っているかわかりやすいので、アクションゲームではちょくちょく見かける機能です。↑のような感じで敵の頭上にHPバーを表示する事が出来ます。HPバーは常にカメラの方を向いて表示されてますね。今回の機能は以前から作成している機能に処理を追加していますので、この機能は何?と思ったら以下の記事で流れを確認してみてください。Unityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。21:43スポンサーリンクHP表示用UIの作成HP表示用のUIを作成していきます。敵キャラの子要素にCanvasを作成し、名前をHPUIとします。その子要素にUI→Sliderを選択し、名前をHPBarとします。Areaはマウスドラッグで値を変更する時に使用しますが、HP用のバー操作は行わないので削除します。階層は↑のようになります。次にHPUIを選択し、キャンバスを敵の頭上に表示するようにします。Spaceに変更し、普通のゲームオブジェクトと同じように移動できるようにします。TransformでScaleの値を調整し、WidthとHeightのサイズの調整をして敵の頭上に丁度良い大きさにします。HPBarを選択します。Directionでスライダーのメーターの方向を指定出来ます。Numbersにチェックを入れると数値が整数で変更されます。次にBackgroundを選択します。Backgroundはスライダーの背景です。ImageをNoneにして背景画像を四角形にします。Areaを選択します。Areaはスライダーの値が設定される範囲の背景ですが、初期値だとBackgroundと合わないので↑のように調整します。次はFillを選択します。ImageをNoneにしてBackgroundと合わせます。値の部分は赤くしたい為、Colorの色を変更します。FillにWidthやleftなどRectTransformの値が入っていると、スライダーの値が最小値や最大値でもメーター表示が最後まで行かないので、0を設定しておきます。メーターの領域を表示したくない場合はSliderの子要素のBackgroundのColorのAlphaを0に設定します。上のようになりました。赤色部分が値が満たされている部分です。HP表示用UIの角度を常にカメラの向きにするスクリプトの作成UIは2D表示で厚みを持っていない為、敵キャラクターが動くとUIも傾き敵キャラが横向きになった時には、カメラからみるUIは完全にペラペラで見えなくなります。その為、UIは常にカメラの方を向くよう調整する必要があります。HPUIゲームオブジェクトに新しくHPUIRotateScriptスクリプトを作成し取り付けます。Camera.main.transform.rotation;}}HUUIの角度にメインカメラの角度を設定しています。敵のステータススクリプトEnemyStatusを修正する敵のHP表示用のUIが出来たので敵がダメージを受けた時にUIのテキストを更新するようにします。敵のステータス管理スクリプトであるEnemyStatusに追記します。HPバーはSliderの値を変更して表示するので、敵のMaxHPと現在のHPから0~1の割合を計算してスライダーの値に設定する必要があります。(float)GetMaxHp();}}敵のmaxHpフィールドを作成し、現在のhpはスタート時にmaxHpを設定します。インスペクタでHPUIゲームオブジェクトを設定し、そこから子要素のHPBarゲームオブジェクトのSliderコンポーネントを取得します。敵がダメージを受けた時はEnemyStatusのSetHpメソッドが呼ばれるのでその時UpdateHPValueメソッドを呼び出してHPBarのスライダーの値を更新しています。HPが0以下になったらHideStatusUIメソッドを呼び出してHPUIゲームオブジェクトを非アクティブにしています。上のように完成しました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。Д`)シクシク...お知らせ2020/01/18個人的にUnity2019.2.18f1をインストールしました。2020/01/01あけましておめでとうございます。(^^)/ユニティちゃんのRPGを作ってみようのPartyStatusスクリプトでpartyMembersのListの型がCharacterStatusとなっていたのでAllyStatusに変更しました。変更したというか、元々AllyStatusに書き換える前のスクリプトを掲載していたので修正しました。ユニティちゃんのRPGを作ってみよう10ーコマンド画面の作成とステータスの表示ーユニティちゃんのRPGでコマンド画面の作成とステータスコマンドを作成し、選択したキャラクターのステータスを表示するようにしていきます。20:00GetPartyStatusメソッドの戻り値もそれに伴って変更しています。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。