MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

開発日誌-Unityゲーム開発。第一号作品公開へ-

ライフゲージを取り付ける

何回か当たったら、ゲームオーバーって感じにしようと思い、diverクラスにlife変数を定義。敵キャラトリガーに衝突判定Trueになるたびにlife += -1; としてライフゲージを減らす。さらにこれをゲーム管理クラスから参照できるようにして、if (life < 1 )で、ゲームオーバーシーンに切り替えを行うというスクリプトを書いた。

変数を参照できるようにpublic,public staticを整理

この記事が参考になりました。 hiroyukitsuda.com "public"でグローバル変数として他のスクリプトからも読み込めるようになる。"public static"にすると、同一のメモリから数値を読み込む、書き込むことになるので、今回のライフゲージのように唯一にしておきたいパラメータの処理にはいいと思われる。

シーンで切り替えをつける

"スタートシーン"→クリック→"ゲームシーン"→ライフゲージ0→"ゲームオーバーシーン"(→クリック→"ゲームシーン"に戻る)

という流れにして、Unityコンソールでスタートシーンとゲームオーバーシーンと2つシーンを設置。

なお、このシーンの表示は、ゲームオブジェクトではなく、CanvasのImageから呼び出すように設定しているのが、ゲームシーンの背景とは違う点がポイント(かもしれない)

スタートシーン f:id:k_mawa:20171113223516p:plain

ゲームオーバーシーン f:id:k_mawa:20171113223532p:plain

それぞれ(スタートシーン、ゲームオーバーシーン)のカメラオブジェクトにC#スクリプトを設置してvoid Updateクラスにクリックがあるとシーン切り替えをするというメソッドを入れ込んでおく。

実装後はこんな感じ!

もうゲーム要素はすべてそろったかな〜

ビルドする(WebGL)

ビルドをしてみようということになり、モバイルアプリ向けビルドが実用性高いけど、例えばiOSならデベロッパーライセンスが必要だったり手続きがこのテスト時点では面倒。早く動いている姿がみたいので、調べてみると、ブラウザゲームとしてアップするのが一番手軽そう・・・形式をWebGLというらしい。HTML5canvas要素に描写することのできる(違うものだけども)jsのような規格と考えるといいみたい。とりあえず、※シーンをスタートシーンから順にbuild settingsに登録していく(シーンをゲームシーンを最初に登録すると、ビルド後にスタートシーンから始まらなかったので再ビルドが必要になってしまい・・・orz)ボタンを2〜3回ポチポチやって待てばビルド完了。Unity凄すぎる・・・

この記事でちゃんとビルドできました!多謝。 blog.naichilab.com

アップする

Unityroomっていうところで無料で公開できるとのことだったので試してみた。

無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

WebGLは、ドロップボックスとかからURLを通して出力もできるようだ。まあ本体がHTMLに出力するものなら直観的にたしかにできそうだ・・・

無事アップできた

ちゃんと動く!(PCブラウザ)。なおモバイル専用ブラウザだと読み込めない場合があるのでPCブラウザ表示にするという設定にするとモバイルでもちゃんと読み込めます。

とりあえず、初ゲームのリリースが完了し、嬉しさと達成感でいっぱいです。つぎはどんなことにチャレンジしようかな・・・

参考にさせていただいている本

これらを参考書にして自分なりにコードや素材を書いて進めています!