【初心者向け】Unityで3Dシューティングを作るチュートリアル

今回作るゲームは画像のような3Dシューティングゲームです

ス○ーフォッ○スみたいですねw
1.png

まずはこちらのUnityパッケージをダウンロードして下さい

パッケージを入れる方法はこちら

プレイヤーの移動

この手のシューティングゲームは
①主人公が自動で前に進むようにする
②WASDキーで上下左右に動くようにする
③キーを押した方向に機体が傾くようにする
④クリックされたら、弾のクローンを生成する

これが基本です。ではいきましょう♪
今回もScratchだとどんなブロックにするのか、参考にしながら考えていく形式を取ります

C#の基本的なルールと構造の説明

Unityで使うC#にはいくつかルールがあります。それは以下の通りですが、
今回は特に
「ゲーム開始後ずっと実行するエリア」
にコードを入力していきますので、そこに注目して下さい

①どのような種類のコードをどこに入力するのか

②エリアとエリアは{}でとじる

この2点をおさえておけば、Scratchと大差ありません!!

図4-1.png

それでは、画像を参考にC#スクリプトを作ります

真ん中らへんのAssetsを右クリック、Createにカーソルを合わせて、C# Scriptをおします
31.png

画像のようにスクリプトの名前をPlayerと入力しましょう
4.png

入力したらダブルクリックしてスクリプトを入力する画面を開きます

主人公が自動で前に進むようにする

これをScratchで表すと、以下の画像のようになります
2.png

見ての通り「ずっと」にはさまれているので、画像の部分に入力します
13.png

入力するコードはこちらの表にあるので探してみましょう

このブロックはどんなコードを入力するのか、表から探しましょう
動き1.PNG

入力したら画像のようにスクリプトをPlayerにD&Dしましょう
32

正解はこちら

18.png

この状態でテストプレイしてみると…
5.png

このままだと、早すぎるのでスピードを自由に調整できるようにします
Speedという変数を作り、10と入力したところに代入します

Speedという変数を作る

変数よく分からんって人はこちらを見て下さい

わざわざ変数を作らずに直接小数を入力しても問題はありませんが、
その場合は0.1fのようにfを最後につけることを忘れないようしましょう
でもいい機会なんで変数を作ってみましょう
慣れれば便利です

#C#での変数の作り方はこちらを参考にして下さい

①図を参考にして変数を入力していきます。
図1.png
②変数はアクセス修飾子 型 変数名;と入力します。
アクセス修飾子については以下を参考にして下さい。
スライド1.PNG
型については以下を参考にして下さい。
スライド2.PNG
例えば他のオブジェクトでも使用可能なfloat型のgetabakoという変数を作る場合
public float getabako; と入力します。

今回はpublic float Speed;と入力します

publicにすることでエディタ上で編集できるようになり、 
floatとすることで、小数単位の数字が入力できるようになります

6.png

そして数字の部分にSpeedと入力しておくと、エディタ上で入力した数字が反映されます
0.6~0.8くらいにしておきましょう

これをScratchで表すと、以下の画像のようになっていて、

7.png

現在スクリプトは以下のようになっています

17.png

WASDキーで上下左右に動くようにする

これをScratchで表すと、以下の画像のようになります(これより以前の部分も含めています)
8.png

1つ目のもしWキーが押されたならy座標を10ずつ変える」は

1つずつ表を見ていくと、

①もし~ならは、
制御4.PNG

if(){}
と表します

②Wキーが押されたならは、条件です
20

Input.GetKey(KeyCode.W))
と表します

これをそのままifのあとの()の中に入力します

③y座標を10ずつ変えるは、実行する内容です
動き7.PNG

transform.position += new Vector3 (0, 10, 0);
と表します

これをそのまま{}の中に入力します

まとめると以下の図のような仕組みです
12-1.png

全部合わせると

if(Input.GetKey(KeyCode.W))){
transform.position += new Vector3 (0, 10, 0);
}

となります
数字はここも10では大きいので小数がオススメです
小数にする際にはfを忘れずに

正解はこちら♪

19.png

他のIf文も同じ要領で打っていきましょう

正解はこちら♪

9.png

キーを押した方向に機体が傾くようにする

これをScratchで表すと、以下の画像のようになります(これより以前の部分も含めています)
10.png
それぞれのif文の中に入力していきましょう

正解はこちら♪

11.png

ビームのクローンを生成する

これをScratchで表すと、以下の画像のようになります(これより以前の部分も含めています)
14.png

クローンを生成される場合、表の注意事項をよく読んで生成された時の回転をプレイヤーと同じ回転にしましょう
①publicのGameObject型のbeamという変数を作る
②生成されたクローンをプレイヤーと同じ回転にする
という点に気をつけて下さい

正解はこちら♪

21.png

※publicのGameObject型で変数を作った場合、どのオブジェクトなのか、
 スクリプトにD&Dで指定することができます
画像を参考にやってみて下さい
22.png

ビームを飛ばす

生成されたクローンの挙動は生成するオブジェクトに直接スクリプトを貼り付けます
まずはプレイヤーと同様にbeamというスクリプトを作りましょう
今回は分からなくなったら正解と照らし合わせながらやってみて下さい

ビームの挙動ですが、
①向いている方向に真っ直ぐ飛んでいく
②数秒たったら消える
③敵に当たったら消える
という、よくある感じにしていこうと思います

これをScratchで表すと、以下の画像のようになります
23.png

1つ目の隠すのところが変な感じになっていますが、Unityだと○秒後に隠すということができるので、
そのようになっています
あと、衝突判定は2種類ありますが、今回は画像の方を使って下さい
getabakoの部分には敵のタグであるEnemyをつけます
24.png

また、衝突判定のスクリプトは画像の場所に入力しましょう
25.png

こちらは3点注意事項があります
①コライダー(衝突判定)のisTriggerにチェックをつける
②衝突するもののどちらかにはRigidBody(重力判定)をつける
③衝突される方にはスクリプトで記述されているタグ(今回の場合はEnemy)をつける

今回はエラーを避けるためにあらかじめやってありますが、自分でやる場合には注意事項をよく読んで下さい

正解はこちら♪

26.png

追加ミッション

敵を爆発させて倒せるようにしよう

これをScratchで表すと、以下の画像のようになります
27.png

ヒント
①Enemyスクリプトを作成し、敵に貼り付けます
②ビームのタグはbeamです
③爆発のクローンを生成するにはpublicでGameObject型の変数を作る必要があります
④爆発のエフェクトはAssets → Prefabsフォルダの中にあります

正解はこちら♪

28.png

敵やステージに触れたらプレイヤーがダメージを受けるようにしよう

これをScratchで表すと、以下の画像のようになります
29.png

ヒント
①Playerスクリプトに追記します
②敵のタグはEnemy、ステージのタグはStageです
③爆発のクローンを生成するにはpublicでGameObject型の変数を作る必要があります
④爆発のエフェクトはAssets → Prefabsフォルダの中にあります

正解はこちら♪縦に長くなってきたので追記部分のみ

30.png

テストプレイをしてみると…

以上になります

お疲れ様でした♪

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です