【Unity】システムエンジニアがなぜかUnityを勉強する(3)

C#
スポンサーリンク
スポンサーリンク

前回の振り返り

前回の記事 【Unity】SEがなぜかUnityを勉強するお話(2)

前回はC#を使って変数や配列、if、for

さらにはクラスの知識を勉強しました。

今回はその知識を使って(?)実際に簡単なゲームを作っていきます。

 

今回の目標

今回は教科書の第3章の実践。

というわけで、今回の目標は

動作するゲームを作る

いよいよ本番って感じですね。

 

実践

 

素材のダウンロード

第3章では簡単なルーレットゲームを作るようです。

じゃあ、ルーレット本体とか針とかいるじゃんって思いましたが、すべて教科書にて用意してくれておりました。

というわけで、本に書いてたURLにアクセスしてダウンロード。

かなり親切ですね。

 

オブジェクトの配置

↑でダウンロードした素材をゲームに取り込みます。

とはいえ、基本はすべてドラッグ&ドロップ。

エディタの優秀さがうかがえます。

基本的に全部本の通りにすれば簡単にオブジェクトを配置できました。

 

スクリプトの作成とアタッチ

今回のゲームは

  1. 画面をクリックする
  2. ルーレットが回る
  3. 一定時間後、ルーレット停止

という感じのゲームのようです。

オブジェクトを置いただけでは全く動いてくれないので、その動作の部分をC#で書いてあげるわけですね。

と言っても、めちゃくちゃ簡単なスクリプトでした。

Input.GetMouseButtonDown(0) ってのがマウスが押されたことを検知して、ルーレットの回転速度を増やす。

で、1フレームごとに速度を0.99倍にしていくことで、ゆっくりとルーレットが止まる感じです。

ちなみに、このプログラムだと完全に静止はしない(限りなく0に近づくが)ので、完全に静止させたかったらある程度の閾値を設けて、それ以下になったら停止させるって感じでしょうか?

というわけで、教科書にはなかったですがオリジナルで書いてみました。

速度が0.01より小さくなると、速度を0になるようにしました。

これで完全に停止させることができますね。

 

実際に動作させてみる

というわけで実際に動作させてみました。

実行するとこんな感じ。

で、クリックするとルーレットが回った後、一定時間後に止まります。

だいぶゲームとしての体裁が整っているのではないでしょうか。

 

ただ、乱数がないので毎回同じ部分で止まってしまいますし、止まったマスに対応してスコアを出したりとかもないため、改良するのであれば、乱数を設置、スコアの設定とかですかね。

本だけで完結せず、自分なりに改良してみるのも面白そうですね。

時間があればやってみようと思います。

 

iOS、Android端末で動かす・・・のだが

ここで、実際にスマートフォンで動かしてみよう!という項目があるのですが、残念ながらiOSで動かすにはMacOSとXcodeが必要とのこと。

MacOS端末を持っていませんのでAndroidで実行しようと思いましたが、唯一持っているAndroidデバイスであるNexus7は仕事場に置きっぱなし・・・

というわけで、実機で動かすのはもうちょっと先になりそうです。。。

 

振り返り

というわけで、初めてゲーム(と言えるのかわかりませんが)を作ってみました。

改めてUnityってオブジェクトの操作がくそ簡単だなと感じました。

昔C#で簡単なゲームを作ってみようと考えた時もありましたが、オブジェクトを表示させるのに精いっぱいでした。

その時にUnityを知っていれば、もっとゲーム制作の世界にはまっていたかもしれませんね。

 

今回はようやく簡単なゲームを作ってみました。

次章ではスコアや効果音などを追加したよりゲームっぽいゲームを作るようです。

多分次章の勉強ができるのは週末になると思いますが、それまでは本の内容を復習して忘れないようにしないといけませんね・・・

 

それでは!


Unityの教科書 Unity 2018完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

コメント

タイトルとURLをコピーしました