Space Shooter 第一回
こんにちはホロ元です。
今回UnityのチュートリアルであるSpace Shooterに関して解説していきたいと思います。
初めてUnityを触るという方や(Unityの基本画面に関してはこちらでまとめています。)C#未経験者でも大丈夫です!
このチュートリアル…もちろん解説付きで無料でできるのですが、いくつか問題があります。
〇1、英語オンリーである。
〇2、バージョンが少し古い
英語が得意という方はまずは公式チュートリアルの映像をもとにやってみてほしいのですが、ただでさえコレカラUnityを始めるのに英語必要なの?という方…大丈夫!解説します
概要
unityの公式チュートリアル。
これをやればシューティングゲームを作りながら、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に設定。
4
- [inspector]より[shader]を[Unlit]>[standard]に変更
5
- [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#ですよ。