製作記録7 UIを触ってみる
前回プレイヤーのベースを作るときに少し書きましたが、今回はUIを触りたいと思います。
と言っても、まだ細かいシステムを決めていないので、UnityのUIシステムを使うための練習といったところです。日が開いているのでリハビリも兼ねてです。
Unityはバージョンが4.6になってから、UIシステムが新しくなりました。
uGUIというシステムになったのですが、以前のシステムとは色々変わったようです。
まあ、私は以前のシステムに習熟していたわけではないので、変わったという実感はありません。
旧GUIもたまに使うかもしれませんが、今のところはuGUIをベースに覚えようと思っています。
一応、本を二冊購入しまして、一冊は8月くらいに読み切ったのですが仕事に追われて更新していない間にほとんど忘れてしまいました。
現在二冊目を読みながら一冊目も復習している所です。
役に立つと思ったら、そのうち私が使っている本も紹介するかもしれません。
そんな中途半端な状態ではありますが、とにかく作ってみるということでUIを触ることにします。
今回作るのはHP用のゲージです。
そもそも戦闘のシステムが未定なので、ゲージが必要かどうかも決まっていないのですが、初めて作るのにちょうどいいくらいの難易度だと思ったので、これに決めました。
構成としては、画面の左上にプレイヤーのHPを示すゲージ、右上に敵のHPを示すゲージを表示します。
別にどこに表示してもいいのですが、とりあえず見やすいのでそうすることにしました。
ちなみに、動かないゲージだけ作っても仕方ないので、プレイヤーと敵が接触したら、お互いダメージを受けてゲージが減り、敵のHPが0になったら倒す(敵のオブジェクトを破壊する)という構成にします。
ゲージはuGUIのスライダーを使用し、コライダーという機能を使って接触判定、スクリプトからゲージの表示の制御と敵のオブジェクトの破壊の制御を行います。
一応、簡単な手順としては、
① uGUIのスライダーを作る。
② スライダーのつまみを消す。
③ スライダーの幅、最大値、色などを変更する。
④ プレイヤーと敵にそれぞれ接触判定を付ける。
⑤ 接触したら、既定のダメージ分だけスライダーの値を減らし、0になったらオブジェクトを破棄するスクリプトを作る。
という感じです。
大したことのない内容なのですが、最初はこんなところかなという感じです。
ちなみに、プレイヤーもスライムも接触判定の形は球体にしました。
Unityでは、3Dモデルに合わせた接触判定を作ることも可能なのですが、できるだけ違和感のない範囲で単純な形にした方が接触の処理が軽くなるようなので今回は球体としました。
ちゃんとしたプレイヤーのモデルを準備したら、そのあたりの処理の負荷についても調べてみるつもりですが、現状は暫定のモデルなのでこのまま進めます。
ここまでで作った結果が挿絵の通りです。
プレイヤーでスライムに突っ込んで体当たりをすればスライムを倒せる感じになりました。
倒せるというか、単に消えていくだけですが。
これ、体当たりじゃなくてジャンプして踏めば倒せるってことにすればマリオ的な何かになりそうです。
なんかそういうミニゲームとか作ってみてもいいのかもしれないですね。
ミニゲームというほどじゃなくても、ある程度ゲームとしての体裁を整えたものを一つ作り上げるのも経験としていい気がします。
まあ、そのうち時間が取れれば作るかもしれません。
今回はここまでです。
更新間隔が開いたのに相変わらず進展があまりありませんが、そろそろペースを上げたいと思っています。
次回はもう少しUI関係をいじるか、キャラクターをいじるか、やることはたくさんあるので思いついたところから触っていくことにします。