Space Shooter 第一回

2018年12月18日

こんにちはホロ元です。

今回UnityのチュートリアルであるSpace Shooterに関して解説していきたいと思います。

初めてUnityを触るという方や(Unityの基本画面に関してはこちらでまとめています。)C#未経験者でも大丈夫です! 

このチュートリアル…もちろん解説付きで無料でできるのですが、いくつか問題があります。

 〇1、英語オンリーである。

 〇2、バージョンが少し古い


英語が得意という方はまずは公式チュートリアルの映像をもとにやってみてほしいのですが、ただでさえコレカラUnityを始めるのに英語必要なの?という方…大丈夫!解説します




概要

unityの公式チュートリアル。

SpaceShooter

これをやればシューティングゲームを作りながら、C#スクリプトを書くことで以下のことが学べます。


  • Unityの基本的な使い方
  • Unity C#の書き方
  • baundaryの使い方=[Destroy]の使い方、[Instancelate]の使い方
  • If構文の使い方。
  • [GetCompornent]の使い方。今回RigdBodyをforceとして使用する。
  • オーディオソースの使い方。
  • テクスチャに関して


必要なもの


  • Unity5以降のバージョン
  • 「Space Shooterアセット」=アセットストアでSpace Shooterと入力することでSpaceShooterTutorialをインポートすることができる。
  • もしくはこちらをクリック
  • Visual Studio


SpaceShooter tutorialアセット

 このアセット内に完成形のゲームを含めmaterialやモデル、サウンドデータ、すべてがそろっているので他にインポート(取り組む)ものは必要ないです。

 今回のゲームはモデルやテクスチャを用い『自分でスクリプトを書く』ことによって学びながら完成を目指すことになります。

アセットに入っているフォルダー『complete_Game』は完成形ですので参考にしてください。

では作りましょう。

 1,画面サイズ設定

最初シーンにはmain cameraとDefault lightが存在すると思います。

・Main cameraの設定。

[Edit] から[project settings]>[Player]

[Resolution and Rresentation]を開き[Degault Is Dull Screen]のチェックを外す。

表示される[Default Screen Width]に600,[Default Screen Height]を900に設定する。

2,プレイヤーゲームオブジェクトの作成

  • [project]より[Models]フォルダーから[vehicle_playerShip]をドラッグアンドドロップでシーンに配置。
  • [Transform]蘭の横にある歯車マークをクリックすることから[Reset]を選択することによってTransformがリセットされる。=pos.rot.scl=All0,0,0,

3, 動かすための設定(これを行わないとただの物体となる。)


  • プレイヤーシップ上のinspectorで[add component]>[physics]>[RigidBody]を付ける。※A1

この状態ではRigidBody=重力が働くので真下に落ちてしまいます。

  • プレイヤーシップの「[RigidBody]>[Use Gravity]のチェックを外す=無効にする。

この状態でゲームを実行した場合シップが落ちることはなくなります。

  • 当たり判定の設定をするため[Project]より[Model]>[vehicle_PlayerShip_colider]を使用する。まずはシーン上のプレイヤーシップに[add companent]>[Physics]>[Mesh Collider]を設定、[Convex]にチェックを入れ[Is Trigger(※A2)]にもチェックを入れる。
  • [vehicle_PlayerShip_colider]をprojectより[Mesh Collider]コンポーネントの[Mesh]にドロップする。※A3
  • hierarchy上の[PlayerShip]をクリックし[Player]にリネーム=名前を変える。

4,effectの追加


・[Project]から[Prefab]>[VFX]>[Engines]より[engines_Player]プレハブをhierarchy上のプレイヤーシップの子オブジェクトとして配置

6,座標の設定

.MainCameraのY座標を5に設定

7,背景の設定

通常Unityのゲームの場合使用する[Sky Box]を必要としないため(カメラが固定され動かないため最小限の背景の描写でよい)一度背景を真っ黒にする。

  • [MainCamera]を選択、[inspector]の[Clear Flags]>[Solid Color]に変更し[Background]をクリックしRGB=0,0,0=真っ黒にする。
  • メインメニュー([File],[asett],etc...)から[window]>[rendering]>[lightning Setings]を選択し設定されているSkyboxを削除する(delete)
  • [Ambient Color]を選択し黒に設定


  • [hierarchy]上で[Create]より[3D Object]>[Quad]を選択
  • 作成した[Quad]の名前を[Backgroud]に変更 おなか減った
  • [Transform]の歯車よりリセットを行い[Rotation,X]=90に設定
  • あくまで背景なので当たり判定など物理情報は必要ないため[Mesh Collide]を削除(歯車からRemove Component)


  • 「Project」から[Textrues]を開き[tile_nebula_green_dff]をドラッグし[Background]にドロップ。

□Quadにテクスチャが設定されることを確認しましょう。

[Hierarhcy]より[Background]の[transform]の[Scalex,y]=15,30に設定。

  • [inspector]より[shader]を[Unlit]>[standard]に変更

  • [Hierarhcy]から[Background]を選択
  • [inspector]から[Transform.pos.y]=[-10]に設定

光の設定

  • [hierarchy]より[Main Light(Default)]をクリックしコピーし[Shift]&[D]で複製
  • [Main Light(1)]を[Fill Light]にリネーム
  • [Fill Light]の[Transform]の歯車より[Reset Rotation]を選択
  • [Transform]を[x,y=5,125]に設定
  • 主要lightではないため明るさを調整するため[Intensity]を[1]に設定
  • [Color]を設定しR,G,B=128,192,192に設定。

ここまでで事前準備完了

大体ダウンロード等を含め所要時間45分程度がラインです。

さあ、25分程度でできたでしょうか?

出来なかったというそこのあ・な・た!さあとなりや周りの人に「Wi-fiがのろまなだけだ!何も問題はない!」とドヤりましょう。

さあスクリプトの時間です

C#ですよ。