アイスタイル Advent Calendar 2022 13日目の記事です。
みなさま、こんにちは!
最近久しぶりに歯医者に行ったら「歯磨きが上手ですね」と褒められて、毎日長時間歯を眺めてるnakanoanです。
(ちなみに歯磨き粉は4種類持っています)
アイスタイルではウェブ開発グループでアットコスメ(WEB)の担当をしています。
今年もアドカレの季節がやってまいりました・・
年中無休でクリスマスソングを聴き、
クリスマスツリーは2ヶ月前から出し、
夜になればライトアップをして、
もちろん今年もホームアローンを金曜ロードショーで観る(ど定番)ほど
クリスマス大大大好きなんです!!!!!
\今年はどうしてもクリスマスに関連する何かが作りたい🎅/
ということでUnityのチュートリアル玉転がしゲームをアレンジして、
サンタさんがクリスマスツリーを避けながらプレゼントを集めるゲームを作ります!(メリクリメリクリ〜ポンポ~ン!!)
準備
Unity Japanさんが公式が出している「Unityで玉転がしゲームをつくってみる(前編/後編)」のチュートリアルを参考にして、ゲームのベースを作成します。
学生ぶりにUnityを触るので、復習の意味も込めて最後までお手本通りに作成しました!(動画が分かりやすかったな~)
\完成しました!/
球体を方向キーで動かして緑色の棒を全部消したら成功。赤い棒に触れたらスタートに戻るという仕様になっています。
ちなみに左下のカウントは緑の棒の数なので、球体が触れるたびに変動します。
(開始するとカウントが7からスタートします)
仕様を決める
仕様
- サンタさんがクリスマスツリーにぶつかったらゲームオーバー
┗ぶつかってしまった場合は最初の画面に戻る - 全てのプレゼントが集められたら「Merry Christmas」の文字を表示させる
- プレゼントを集めたら左下のカウントを減らす
- 雪を降らせる
制作開始!
1. ゲームで使用するアセットをUnity Assetsからダウンロードする
今回はこちらのアセットを使用させていただきました!
POLYCRAFT - Christmas Tree・・プレゼント
Meshtint Free Santa Claus・・サンタさんとクリスマスツリー
2. サンタさんを操作できるようにする
サンタさん=チュートリアルでは球体なので、
球体を方向キーで操作できるようにするために使用していたスクリプト(PlayerController)をサンタさんに追加します。
そしてサンタさんに物理的な機能を持たせるためにコライダーをつけます。
これがないとサンタさんが床をすり抜けてしまうのです!
今回は簡単に球体のコライダーを追加しました。(サンタさんぐるぐるしちゃうけど)
更に Meshtint Free Santa Clausのアセットに「白い床」と「雪を降らせる機能」があったので追加してみました!
3. プレゼントを集められるようにする
プレゼント=チュートリアルでは緑色の棒なので、
プレイヤーがオブジェクトに触れると消えることを定義しているスクリプト(itemScript)をプレゼントのオブジェクトに追加します。
オブジェクトの「タグ」を使用して判定処理をしているので、サンタさんはPlayerタグ、プレゼントはItemタグに設定することをお忘れなく!
これでサンタさんがプレゼントに触れるとプレゼントが消えるようになりました!
4. クリスマスツリーに触れるとスタート画面に戻るようにする
クリスマスツリー=チュートリアルでは赤い壁なので、赤い壁で使用していた接触するとスタートに戻るスクリプト(DangerWall)をクリスマスツリーに追加します。
5. カメラがサンタさんを追従するように設定する
プレイヤーを追従するスクリプト(FollowPlayer)は既にカメラに追加されているので、「ターゲット」をサンタさんに設定します。
6. 全てプレゼントを収集したら「Merry Christmas」と表示させる
チュートリアルでWinnerLabelを作成してあるので、その文言をチョチョっと修正します!
7. 配置を変えてゲームっぽくする
あとはチュートリアルで使用していたオブジェクトを非表示にするくらいで、
他はそのままでOK(のはず)なのでゲームっぽくしていきます!
完成!
さいごに
久しぶりのUnityでしたが、作り始めると止まらない楽しさがありました🎮
そういえばアイスタイルでUnityをやっている人いるのかな?と思ったので、来年はSlackに新しくUnityチャンネルを作ってみます!
気軽に新しいチャンネルを作って趣味の話もできるアットホームな雰囲気はアイスタイルの魅力です✨
実はアイスタイルのアドカレは今年で4回目の参加なのですが、開発のことを書くのは初めてでした!
なんとかゲームが完成して安心しました(ほっ)