Unity

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

投稿日:2018年9月8日 更新日:

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

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

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

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

プレイヤーの移動

この手のシューティングゲームは

①主人公が自動で前に進むようにする
②WASDキーで上下左右に動くようにする
③キーを押した方向に機体が傾くようにする
④クリックされたら、弾のクローンを生成する
⑤弾を生成したら前方に飛ぶ

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

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

C#にはいくつかルールがあります。

①スクリプトを作成した時につけた名前と、スクリプトの名前は一致させる
②何をどこに入力するのかエリアを理解する
③エリアとエリアは{}でとじる
④行の最後は;をつける

以上の点をしっかりおさえておきましょう!
今回は特に
「ゲーム開始中、繰り返し実行されるエリア」
にコードを入力していきますので、そこに注目して下さい

それでは、画像を参考に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という変数を作る

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

変数とは?

数字に名前をつけて役割を与えたもの
例えば、身の回りだと時間とか気温とか、ゲームだと体力とかが変数になります
プログラミングでは、体力を表す数字をHPという変数だということにして、HPを減らしたり増やしたりすれば、ダメージを受けたり回復したりできるというわけです
#C#での変数の作り方はこちらを参考にして下さい
①図を参考にして変数を入力していきます。
図1.png
②変数はアクセス修飾子 型 変数名;と入力します。
アクセス修飾子については以下を参考にして下さい。
スライド1.PNG
型については以下を参考にして下さい。
スライド2.PNG
例えば他のオブジェクトでも使用可能なfloat型のgetabakoという変数を作る場合
public float getabako; と入力します。

今回は

と入力します

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

と表します

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

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

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

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

まとめると以下の図のようになります
12-1.png

全部合わせると、

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

正解はこちら♪

19.png

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

正解はこちら♪

9.png

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

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

と書きます

正解はこちら♪

11.png

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

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

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

と書きます
今回の場合は

となります

正解はこちら♪

21.png

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

ビームを飛ばす

Assets → Prefabsフォルダにあるbeamに貼り付けて下さい
まずはプレイヤーと同様に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

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


以上になります

お疲れ様でした♪

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

-Unity

執筆者:


  1. 田中太郎 より:

    こちらの記事を参考に勉強しているのですが、「ビームを飛ばす」の「beam.cs」スクリプトはどのオブジェクトに設定したらいいのでしょうか。

    • getabako より:

      コメントありがとうございます!
      返信遅れてすみません…
      Assets → Prefabsフォルダにあるbeamに貼り付けて下さい

  2. KKt より:

    ビームを飛ばすのクローンを生成するオブジェクトにスクリプトを張り付けるの所なんですが、やり方が解りません。

    • getabako より:

      コメントありがとうございます!
      返信遅れてすみません…
      Assets → Prefabsフォルダにあるbeamにbeam.csを貼り付けて下さい

KKt へ返信する コメントをキャンセル

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Unityでメッセージウィンドウでの会話機能を作る

スクリプトを貼りけるための空のオブジェクトの作成 Create → CreateEmptyをおします 名前をMessageControllerにします 会話機能のスクリプトの作成 Messageという …

no image

Unityで3Dシューティングアクションを作ろう①

チュートリアルの内容 3D空間を走り回り、弾を飛ばして敵を倒すゲームを作ります。 今回やること プレイヤーの移動 アニメーションの遷移 カメラの追従 事前に準備するもの プレイヤー(待機アニメーション …

Unityでカメラに映るまで敵を動かさないようにする

これで、カメラに映るまで敵は動かず、カメラに映ったら動くようになります

no image

AssetStoreの使い方

AssetStoreを開く Window → AssetStoreをおします 素材を検索する 検索のアドバイス キャラクターをいれたい : Character テクスチャをいれたい : Texture …

Unityでスコープ機能を実装する

今回やること 画像のようにキーをおしたらズームするようになります 照準の画像も通常時とズーム時で変わるようにします フォートナイトみたいなゲームでよく使われますね 照準の作成 照準の画像が無い場合はこ …

ゲタバコ倶楽部へようこそ

  • 85119総閲覧数:
  • 219今日の閲覧数:
  • 60365総訪問者数:
  • 176今日の訪問者数:

住所
Akita,Japan

営業時間
月~日: 10:00 AM – 10:00 PM

このページはゲタバコ先生の日々思うことや活動、プログラミングの習得方法を発信するページです。
仕事のご依頼、メッセージ等、サービス概要をご覧の上で、お気軽にご連絡ください。

getabakosensei@gmail.com