初心者が2週間かけてUnityで作ったアプリをGooglePlayにリリースしてみる話 第18・19(延長戦4・5)日目
「どうすれば実現できるのかを考えている時が一番進み、やらなければいけない単純な作業の時は一番進まない」
そんな教訓を自分の作業時間から学びました、先端のマーシーです。
というのも主にスクリプトを書いている時はとても楽しくて悩んでいても手が進むのですが、素材が揃っているUIであったりを配置する作業は一向に始められませんでしたね。
しかし中身より見た目とまで言われるアプリにおいてUIは最重要課題。
なんとか作業効率を上げていきたいです。
1. タイトル画面のシーン作成
基本的には多くのシーンを作成するつもりはなかったのですが、タイトルや設定画面などゲーム中とは直接関係ない機能については分けた方が良いと考えました。
そこでゲームとは別にアプリ起動時に立ち上がるシーンを作成し、その中に必要なものをまとめていきたいと思います。
現時点で必要と考えている機能については、
- ゲームシーンへの移動ボタン
- アイテム(もしくは体力)の表示、追加UI
- 音声や操作方法など各種設定画面
としています。
また他にもチュートリアルやアイテムショップなど拡張させる機能も考えていますが、それは最悪リリース後でも良いと思ったので後回しに。
また現時点ではSEなども入れていないので設定画面は後日作成します。
今はまだ背景も無く、味気のない画面にはなっていますが必要最低限を追加したものがこちら。
いくら何でも寂し過ぎないだろうか。
という問題は置いておくとして、最低限のUIと機能を備えたものを作成しました。
とはいってもハートやダイヤといったものはまだ何のパラメータとも紐づけていないので適当ですが、この辺りはしっかりと個数から決めたいところです。
2. 各種UIとシーン遷移の紐づけ
1で記述したタイトルシーンからゲームシーンへの遷移、またはその逆も出来るようにスクリプトを変更します。
ただし大前提がスマホゲーム。
特にタイトルから重いゲーム画面に遷移する時にはロード時間を気にかける必要があります。
そこで今回初めて使用したのがコルーチン、非同期処理です。
LoadSceneAsync //シーン遷移もAsyncを使用
この機能を使用することでロード部分に差が出ないようにしようと思います。
スクリプトの参考にしたのはこちらのサイトの皆様(Special Thanks!)
またゲーム画面でも一時停止機能と、その際に開くポップアップメニューを作成しました。
ゲーム画面の色どりの多さに少し安心しますね。
ということはさておき、これらを開いた時にTime.timeScale(時間の進む倍率)を0にして停止しなければなりません。
またシーンを切り替えてもTime.timeScaleはそのままになってしまうっぽい(コルーチンがいつまで経っても進まなかったため)ので、しっかりとシーンごとに戻すことも忘れないでおきましょう。
これらを一通りつなぎ合わせて動作確認してみました。
シーン遷移とかリスタート云々に関しては見る限り全部の動作が正常やけど、途中でゲーム画面行ったら夕方になってて草#Unity #madewithunity #プログラミング pic.twitter.com/i7xl7klddJ
— 先端のマーシー (@Masashi_Sentan) 2021年9月28日
何故かライティングで途中おかしくなってますが、有名な症状みたいで直ぐに改善は出来るかなと思います。
おそらくもうそろそろ仕上げの目途も立ってくるくらいでしょうか。
進捗なども上げていますのでTwitterのフォローもよろしくお願いします!