【Unity Learn】Unity公式チュートリアルで学習する パート2

Unity Online Tutorial Review Part 2

Posted by 51n1 on 21 Oct, 2019

もくじ

2D Roguelike

Unity Learn: 2D Roguelike

おすすめ度:★★★★★
レベル:Intermediate
本チュートリアルは中級レベルとなっており、ビデオ形式で進む。学習用の素材はAsset Storeからインポートするか、Unity Hubでチュートリアル用のプロジェクトをダウンロードできる。

(2020/12/1追記)
現在、Unity Hubから直接はダウンロードできなくなった模様。Unity LearnのページかAsset Storeからダウンロードできるだろう。

Unity Remoteを使ってiPhoneでテストしている様子

Unity 5を使って解説しているのでUnityのインターフェースなど少し古いが、Unity 2019でも問題なく進められる。ただ、旧バージョンに比べてPrefabの取扱いが変更されているので、Prefab作成のところは少し読み替えが必要になる。

サンプルゲームはローグライク風の2Dゲームとなり、サンプルとしてはとても良い内容である。ビデオの解説は英語だが、わりと遅めの速度なので字幕を付けながら画面操作と一緒に見れば特に問題ない。英語の勉強にもなる。

動画のC#のコードが一部古い(誤り?)場合があるので注意だ。何かおかしいなと思ったら、チュートリアルのオンラインページにもサンプルコードが掲載されているのでそちらも併せて確認すれば良いだろう。Visual Studioを使ってコーディングしていれば、エラーや警告が表示されるので分かるはずである。

最後に動作確認した際にキャラクターの動きがバグっぽい処理があることに気付いたが、サンプルとしては十分である。

2D Game Kit

Unity Learn: 2D Game Kit

おすすめ度:★★★☆☆
レベル:Beginner
これは「2D Roguelike」よりも易しい初級レベルのチュートリアルである。しかしサンプルとして取り上げられているゲームプロジェクトの中身を見てみると複雑なパラメータ設定を有するコンポーネントが多く存在する。とりあえずはビデオを見ながらサンプルを触ってみて、2回目にはサンプルのプロジェクトで使用されているゲームオブジェクトのコンポーネントの機能や設定を見ていくと面白いかもしれない。

Space Shooter

Unity Learn: Space Shooter

おすすめ度:★★★★★
レベル:Beginner
このチュートリアルは今後アップデートされないようだが、以前からこのチュートリアルを実施してみたかったので公開されているうちに学習した。これもビデオ形式の英語チュートリアルとなっている。

3D用プロジェクトで縦型ステージの2Dシューティングゲームを作成するチュートリアル。いわゆるインベーダーゲームである。

サンプルプロジェクトをUnity Editor画面で表示させているところ

3Dモデルのシップ型プレイヤーを配置し、エンジンエフェクトを追加し、ゲームシーンにライトを追加し、宇宙空間を模した背景イメージをセットアップする。そして次にUnity標準の物理演算(Rigidbody)を使って宇宙船の縦・横・傾きの移動をC#スクリプトでコーディングしていく。

続いて平面テクスチャとマテリアルを使ってレーザービームの実装をします。そして小惑星のオブジェクト化と配置、レーザービームでの衝突判定、衝突時の爆発エフェクトの実装と続く。

本チュートリアルの小惑星の自動生成処理の部分でコルーチン(Coroutine)が出てくる。少し調べたのですが、このコルーチンというのはUnity特有の仕組みなのかC#の言語的な仕組みなのか分からなかったが、フレームを跨いでループ処理が必要な時に利用するようだ。Unity内部のフレーム処理とは異なるタイミングで好きな処理をコントロールしたいときに利用するものと理解した。

ちなみにこのチュートリアルでは物体の移動に「rigidbody.velocity」というコードを使っているが、現在は使えないので、下記のようなGetComponentを使った書き方に置き変える必要がある。

GetComponent<Rigidbody>().velocity = transform.forward * speed;

その他、サウンドエフェクト(効果音)の付け方やスコアの表示を学習する。スコア等のテキスト表示を行うUIオブジェクトの取扱いやシーンの再ロードのコードは今と異なっているので注意が必要。