0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Galaxy Wars

Last updated at Posted at 2020-12-17

Google PlayGroundのチュートリアル動画を元に、授業向け資料を作りました(Unity 2017.4.33f1版)

その1 https://www.youtube.com/watch?v=u46DvalJW7E

PlayGroundの準備

スクリーンショット (1741).png
1:Unity PlayGround.zipをダウンロードして解凍する。Unity Hubを起動して「リストに追加」をクリックする。

スクリーンショット (1745).png
2:解凍したUnity PlayGroundフォルダをクリックして開く。

スクリーンショット (1743).png
3:図の階層まで開いて、「フォルダーの選択」ボタンをクリックする。

スクリーンショット (1744).png
4:Unity HubにUnity PlayGroundフォルダが登録されたら、クリックする。

スクリーンショット (1733).png
5:Unityエディタが開いたら、プロジェクトエリアで右クリックして、Create>Folderを選択する。

スクリーンショット (1734).png
6:新規フォルダができたら、「GalaxyWars」を入力してフォルダ名をつけよう。

スクリーンショット (1736).png
7:メインメニューでFile>Save Asを選ぶ。

スクリーンショット (1737).png
8:Assets>GalaxyWarsフォルダをクリックして開く。

スクリーンショット (1739).png
9:GalaxyWarsフォルダ内にファイル名「GalaxyWars」と入力して保存する。

スクリーンショット (1740).png
10:UnityエディタのAssets>GalaxyWarsフォルダ内に、新規シーンファイル「GalaxyWars.unity」ができればOKだ。

※以下、シーンファイルの名称が異なっていますが、そこは無視してください。また、Unityのバージョンが古いため、UIが異なっていますが、そこも無視してください。

ステージの作成

スクリーンショット (1750).png
1:Unityエディタのメニューから「Game」タブをクリックし、画角メニューから「16:9」を選択しよう

スクリーンショット (81).png
1:その後、Sceneタブをクリックして戻り、Project欄から「Assets」→「Images」→「Backgrounds」→「BG_Space」を選択し、シーンビューにドラッグ&ドロップします

スクリーンショット (82).png
2:Hierarchy欄で「BG_Space」をクリックし、Imspector欄のTransform→Positionで、「X=-5」「Y=0」にします

スクリーンショット (83).png
3:同じように「BG_Space」をシーンビューにドラッグ&ドロップし、今度は「X=5」「Y=0」にします。これで2枚の画像ファイルが横に並びます

スクリーンショット (1746).png
4:HierarchyでBG_Spaceを選択し、InspectorのSprite RendererコンポーネントのVisibility Optionsメニューを開き、Sorting Layerメニューで「Background」を選びましょう

スクリーンショット (1747).png
5:同様にHierarchyでBG_Space(1)を選択し、InspectorのSprite RendererコンポーネントのVisibility Optionsメニューを開き、Sorting Layerメニューで「Background」を選びましょう。これで背景が自動的に一番奥のレイヤーになります

スクリーンショット (287).png
6:Project欄から「Assets」→「Images」→「Blocks」→「metal」を選択し、シーンビューにドラッグ&ドロップします。その後、Imspector欄のTransform→Positionで、「X=-9」「Y=0」にします

スクリーンショット (290).png
7:同じように「metal」をシーンビューにドラッグ&ドロップし、今度は「X=9」「Y=0」にします

スクリーンショット (97).png
8:Hierarchy欄の「metal」と「metal(1)」を両方選択し、「Draw Mode」を「Tiled」にします

スクリーンショット (98).png
9:同じように「Size」欄でYを「10」にします

スクリーンショット (99).png
10:Hierarchy欄の「metal」と「metal(1)」を両方選択したまま、Tagを「Ground」にします

スクリーンショット (101).png
11:Hierarchy欄の「metal」と「metal(1)」を両方選択したまま、Add Componentの検索欄に「Box Collider 2D」と入力し、Search欄に表示されたらEnterを押して設定します

スクリーンショット (104).png
12:Box Collider 2DのSize欄のYエリアに「10」と入力します。これで左右の壁に当たり判定がつきます。Hierarchy欄の「metal」と「metal(1)」をそれぞれクリックして、両方の壁に同じ設定がなされているか確認してください

アステロイドの配置

2.png
1:続いて障害物となるアステロイドを設定します。まずProject欄から「Assets」→「Images」→「Asteroids」→「Asteroid2」を選択し、シーンビューにドラッグ&ドロップします。その後、Tagを「Enemy」にします

スクリーンショット (106).png
2:Asteroid2のImspector欄→Transform→Scale欄で、「X=0.3」「Y=0.3」にします

スクリーンショット (108).png
3:Asteroid2のImspector欄→Transform欄でXのPositionを「-8」、Yを「0」にします

スクリーンショット (110).png
4:Asteroid2のImspector欄→Add Componentから、検索欄に「Rigidbody 2D」Rigと入力し、そのままEnterを押してアタッチします。その後、Rigidbody 2DのFriction欄を10、Gravity欄を0にします

スクリーンショット (291).png
5:Asteroid2のImspector欄からRigidbody 2Dの「Constraints」欄を開き、Freeze Positionの「Y」にチェックを入れます

スクリーンショット (113).png
6:同じくAdd Componentから「Auto Rotate」をアタッチします

スクリーンショット (114).png
7:同じくAdd Componentから「Polygon Collider 2D」をアタッチします。これで隕石に当たり判定がつきます

スクリーンショット (115).png
8:同じくAdd Componentから「Auto Move」をアタッチします

スクリーンショット (116)-2.png
9:Asteroid2のImspector欄→Auto Move→Directionで「X」を5,「Y」を0にします。また、Relative To Rotationのチェックを外します

スクリーンショット (117).png
11:再生ボタンを押すと隕石が回転しながら左から右に進んでいきます

スクリーンショット (118).png
12:Asteroid2のImspector欄からAdd Component→「Condition collision」を選択し、アタッチします

スクリーンショット (119).png
13:Asteroid2のImspector欄→「Condition collision」→「Filter by Tag」にチェックを入れ、「Tag to Check for」メニューで「Ground」を選択します

スクリーンショット (120).png
14:同じくCondition collision欄の「Gameplay Actions」メニューから「TeleportAction」を選択します

スクリーンショット (121).png
15:Teleport Action欄の「New Position」欄で「X」を-8、「Y」を0にします

スクリーンショット (122).png
16:再び再生ボタンを押すと、隕石が回転しながら右に進み、端まで行くと消えて、今度は左端から出現します

スクリーンショット (124).png
17:Project欄からAssets→Prefabsを選択します。次にHierarchyから「Asteroid2」をProject欄にドラッグ&ドロップして、Prefabsにします

スクリーンショット (126).png
18:Prefabsにしたら、Hierarchy欄の「Asteroid2」を削除します

スクリーンショット (131).png
19:PrefabsのAsteroid2を4回、Hierarchy欄にドラッグ&ドロップします。その後、Asteroid2をそれぞれクリックし、Transform欄のPositionにあるX座標を「-8」「-4」「0」「4」にします。Y座標はすべて「0」にします。こうすることで、4つの隕石が横に並びます

スクリーンショット (132).png
20:再生ボタンをクリックすると、4つの隕石が右に向かって進み、延々とループします

スクリーンショット (133).png
21:Hierarchy欄で4つのAsteroid2を選択し、Ctrl+Cで一喝コピーします。その後、Ctrl+Vでペーストし、新たに4つのAsteroid2を作成します

スクリーンショット (134).png
22:新たに作った4つのAsteroid2を選択したまま、Auto Move欄のDirectionで、Xを「-5」にします

スクリーンショット (135).png
23:同じく4つのAsteroid2を選択したまま、Imspector欄のTransform欄→Y座標を「2」にします

スクリーンショット (292).png
24:同じく4つのAsteroid2を選択したまま、Imspector欄のAuto RotateでRotation Speedを-5にします。次にTeleport ActionのNew PositopnでXを「8」、Yを「2」にします。最後に4つのAsteroid2をそれぞれ個別に選択し、Imspector→Transform→X座標を「-4」「0」「4」「8」にします。

スクリーンショット (180).png
25:再生ボタンをクリックすると、隕石が2列になってそれぞれ別の方向に、回転しながら進んでいきます

その2
https://www.youtube.com/watch?v=wxeh9zv7knA

マイシップの配置

スクリーンショット (189).png
1:Project→Images→Spaceshipから赤い宇宙船「SpaceshipRed」を選択し、シーンビューにドラッグ&ドロップします。

スクリーンショット (190).png
2:SpaceshipRedを選択し、Transform欄でPositionから「X座標」を0、「Y座標」を-4にします。その後、Transform→ScaleでXを0.3、Yを0.3にします

スクリーンショット (191).png
3:SpaceshipRedのImspector欄でAdd ComponentからPolygon Collider 2Dを選択し、アタッチします

スクリーンショット (192).png
4:同様にSpaceshipRedのImspector欄でAdd ComponentからRigidbody 2Dを選択し、アタッチします

スクリーンショット (193).png
5:SpaceshipRedのImspector欄からRigidbody 2DでFrictionを10、Gravityを0にします

スクリーンショット (194).png
6:SpaceshipRedのImspector欄でAdd ComponentからMove with Allowsを選択し、アタッチします

スクリーンショット (195).png
7:SpaceshipRedのImspector欄でMove with AllowsからType of ControlをWASD、Speedを3、Movement TypeをOnly Horizontalにします

スクリーンショット (196).png
8:再生ボタンを押し、AとDで左右に宇宙船が動くことを確認します

スクリーンショット (197).png
9:SpaceshipRedを選択し、Tag欄から「Player」を選択します

スクリーンショット (198).png
10:SpaceshipRedを選択し、Inspector欄から名前を「Spaceship_Standby」に変更します

スクリーンショット (199).png
11:あらかじめProject欄からAssets→Prefabsを開いておきます。次にHierarchy欄からSpaceship_Standbyを選択し、Project欄にドラッグ&ドロップして、Prefabsにします

発射後のマイシップの作成

スクリーンショット (1748).png
12:このゲームでは待機中にスペースキーを押すと発進し、発進後にスペースキーを押すと速度がアップします。そのため待機中と飛行中で異なるマイシップを作成します。はじめにHierarchyのSpaceship_Standbyを選択し、右クリックしてUnpack Prefab Completelyを選択して、シーンビューのキャラクターをPrefabから分離します

スクリーンショット (201).png
2:はじめにHierarchy欄からSpaceship_Standbyを選択します。次にInspector欄で名前を「Spaceship_Launched」に変更します

スクリーンショット (202).png
3:Starship_Launchedを選択し、Imspector欄からAdd Component→Auto Moveを選択して、アタッチします

1.png
4:Starship_LaunchedのInspector欄でAuto Moveにある「Direction」で、X座標を0、Y座標を2に設定します。次にRigidbody 2DのConstraintsメニューを開き、Freeze RotationでZにチェックを入れます

スクリーンショット (204).png
5:再生ボタンを押し、宇宙船が自動的に画面上に移動することを確認します

スクリーンショット (206).png
6:同じくStarship_Launchedを選択し、Imspector欄からAdd Component→Pushを選択して、アタッチします

スクリーンショット (208).png
7:Starship_LaunchedのImspector欄→Push欄で、Push Strengthを10、AxisをYにします

スクリーンショット (209).png
8:再生ボタンを押し、スペースキーを押すと宇宙船の移動速度が増加することを確認します

スクリーンショット (210).png
9:あらかじめProject欄からAssets→Prefabsを開いておきます。次にHierarchy欄からSpaceship_Launchedを選択し、Project欄にドラッグ&ドロップして、Prefabsにします

スクリーンショット (211).png
10:Hierarchy欄からStarship_Launchedを削除します

スクリーンショット (212).png
11:Project欄からAssets→Prefabsを開き、Starship_StandbyをHierarchy欄にドラッグ&ドロップして、シーンビューに表示させます。次にProject欄のTransform→Positionから、X座標を0,Y座標を-4にします

スクリーンショット (1751).png
12:プロジェクトエリアにあるStarship_Standby Prefabを選択し、InspectorでOpen Prefabをクリックします

スクリーンショット (1752).png
13:InspectorのAdd ComponentからCondition Key Pressを絞り込み検索し、アタッチします

スクリーンショット (1753).png
14:Conditiopn Key OressコンポーネントにあるGameplay Actionsの+ボタンをクリックし、メニューからDestroyActionを選択します

スクリーンショット (1754).png
15:Destroy ActionコンポーネントでTargetをThis Objectにします

スクリーンショット (1755).png
16:Condition Key Pressコンポーネントの+ボタンをクリックし、メニューからCreateObjectActionを選択します

スクリーンショット (1757).png
17:Starship_Standby PrefabのInspectorにあるCreate Object ActionコンポーネントのPrefab To Createスロットに、プロジェクトエリアのStarship_Launched Prefabをドラッグ&ドロップして設定します。また、同じ欄にあるRelative To This Objectにチェックを入れます

スクリーンショット (223).png
18:再生ボタンをクリックし、スペースキーを押すと宇宙船が上方に移動することを確認します

スクリーンショット (1759).png
19:プロジェクトエリアでStarship_Launced Prefabを選択し、InspectorでOpen Prefabをクリックします

スクリーンショット (1760).png
20:Imspector欄のAdd ComponentからCondition collisionを絞り込み検索して、アタッチします

スクリーンショット (1761).png
21:Imspector欄のCondition collisionコンポーネントでFilter by Tagにチェックを入れます。次にTag to check forメニューからEnemyを選択します

スクリーンショット (1762).png
22:Condition collisionコンポーネントにあるGameplay Actionsの+ボタンをクリックし、メニューからDestroy Actionを選択します

スクリーンショット (1763).png
23:Destroy Actionメニューから「This Object」を選択します

スクリーンショット (1764).png
24:Death Effect欄の横にある〇をクリックし、Select GameObjectウィンドウを開きます。その後、Assetsタブをクリックし、一覧からP_Explosionを選択します。最後に✕ボタンをクリックしてウィンドウを閉じます

スクリーンショット (231).png
25:再生ボタンをクリックし、宇宙船が隕石にぶつかると爆発エフェクトが描写されるとともに、宇宙船が消えることを確認します

その3
https://www.youtube.com/watch?v=DhzB9ntiZ2o

スクリーンショット (1759).png
26:再びStarship_Launched Prefabを選択し、InspectorでOpen Prefabをクリックします

スクリーンショット (1765).png
27:Condition collisionコンポーネントにあるGameplay Actionsの+ボタンをクリックして、Create Object Actionを選択します

スクリーンショット (1767).png
28:Spaceship_LaunchedのInspectorからCreate Object ActionコンポーネントのPrefab To Create欄に、Starship_StandbyのPrefabsをドラッグ&ドロップして設定します。その後、New PositionのX座標を0、Y座標を-4にします

スクリーンショット (1770).png
スクリーンショット (1768).png
スクリーンショット (1769).png
29:ゲームを再生し、AとDで宇宙船が左右移動すること、スペースキーを押すと上に移動すること、スペースキーを押している間は速度が増すこと、隕石にぶつかったら爆発して元の位置に戻ることを確認します

天井の作成

スクリーンショット (236).png
1:メニューからGameObject→Create Emptyを選択します

スクリーンショット (237).png
2:GameObjectのImspector欄にあるAdd Componentの検索窓からBox Collider 2Dと入力し、アタッチします

スクリーンショット (238).png
3:GameObjectのTransform欄にあるPositonから、X座標を0、Y座標を5.5にします

スクリーンショット (1772).png
4:Box Collider 2DのSize欄でXを19、Yを1にします

スクリーンショット (240).png
5:GameObjectの名称をRespawnにします。また、TagメニューからRespawnを選択します

スクリーンショット (242).png
6:RespawnのInspector欄から、Add Componentの検索窓にCondition collisionと入力し、アタッチします

スクリーンショット (244).png
7:RespawnのImspector→Condition collisionでFilter by Tagにチェックを入れ、Tag to Check forメニューからPlayerを選択します

スクリーンショット (245).png
8:RespawnのImspector→Condition collision欄にあるGameplay Actionsの+ボタンをクリックし、メニューからDestroyActionを選択します

スクリーンショット (246).png
9:同じくRespawnのImspector→Condition collision欄にあるGameplay Actionsの+ボタンをクリックし、メニューからCreate Object Actionを選択します

スクリーンショット (248).png
10:Respawnを選択したまま、Assets→PrefabsにあるStarship_StandbyのPrefabsを、Create Object Action欄のPrefabs To Create欄にドラッグ&ドロップして設定します。また、New PositionのX座標を0、Y座標を-4にします

スクリーンショット (249).png
11:再生ボタンをクリックし、宇宙船が画面上方に到達したら、再び画面下方でスタンバイ状態になることを確認します

ターゲットの作成

スクリーンショット (250).png
1:Assets→Images→SpaceshipからSpaceship_Blueを選択し、シーンビューにドラッグ&ドロップします

スクリーンショット (251).png
2:Spaceship_Blueを選択し、Imspector欄のTransformにあるPositon欄で、X座標を-7.5、Y座標を4.5にします。また、ScaleでX=0.3、Y=0.3にします

スクリーンショット (252).png
3:Spaceship_BlueのImspectorにあるAdd Componentの検索窓にPolygon Collider 2Dと入力し、アタッチします

スクリーンショット (253).png
4:同じくSpaceship_BlueのImspectorにあるAdd Componentの検索窓にRigidbody 2Dと入力し、アタッチします

スクリーンショット (254).png
5:Spaceship_Blue→Imspector→Rigidbody 2DのFrictionを10、Gravityを0にします。その後、Add Componentの検索窓からAuto Moveと入力し、アタッチします

スクリーンショット (255).png
6:Spaceship_Blue→Imspector→Auto MoveのDirectionでX座標を10、Y座標を0にします

スクリーンショット (256).png
7:同じくSpaceship_BlueのImspectorにあるAdd Componentの検索窓にCondition Collisionと入力し、アタッチします

スクリーンショット (257).png
8:Spaceship_Blue→Imspector→Condition collisionでFilter by Tagにチェックを入れ、Tag to Check forメニューからGroundを選択します

スクリーンショット (258).png
9:同じくSpaceship_Blue→Imspector→Condition collisionのGameplay Actionsにある+ボタンをクリックし、TeleportAtionを選択します

スクリーンショット (259).png
10:Spaceship_Blue→Imspector→TeleportAtion→New PositionでX座標を-7.5、Y座標を4.5にします

スクリーンショット (260).png
11:Spaceship_Blue→Imspector→Rigidbody 2DでConstraintsを開き、Freeze PositionのYと、Freeze RotationのZに、それぞれチェックを入れます

スクリーンショット (261).png
12:再生ボタンをクリックし、Spaceship_Blueが画面上方で左から右にループ移動することを確認します

スクリーンショット (268).png
13:Spaceship_Blue→Imspector→Add Componentの検索窓にCondition collisionと入力し、アタッチします

スクリーンショット (269).png
14:Spaceship_Blue→Imspector→Condition collisionのFilter by Tagにチェックし、Tag to Check forメニューからPlayerを選択します

スクリーンショット (270).png
15:Spaceship_Blue→Imspector→Condition collisionのGameplay Actionsにある+ボタンをクリックし、DestroyActionを選択します

スクリーンショット (271).png
16:Spaceship_Blue→Imspector→DestroyAction欄にあるTargetメニューをThis Objectにします

スクリーンショット (272).png
17:Spaceship_Blue→Imspector→DestroyAction欄にあるDeath Effect欄右の〇をクリックし、検索窓にP_Explosionと入力して選択します

スクリーンショット (273).png
18:再生ボタンをクリックし、赤い宇宙船を操作して青い宇宙船に衝突させたら、青い宇宙船が破壊されることを確認します

スクリーンショット (263).png
19:Spaceship_Blueの名前をUFOに変更します。その後、Hierarchy欄からAssets→Prefabsにドラッグ&ドロップし、Prefabsにします

スクリーンショット (264).png
20:UFOがPrefabsにされたら、Hierarchy欄から削除します

スクリーンショット (265).png
21:Assets→PrefabsからUFOをHierarchyにドラッグ&ドロップします。これを4回繰り返します。

スクリーンショット (282).png
22:Hierarchy欄の4つのUFOで、Imspector→Transform→PositonのX座標とY座標を一つずつ設定します。Y座標はすべて4.5で、X座標は「-7.5」「-4」「0」「4」とします

スクリーンショット (280).png
23:再生ボタンをクリックし、ゲームがきちんと動作するか確認します

Nコースの課題はこれで終了です。ゲームのプレイ動画をキャプチャして提出してください。

Sコースの課題に挑戦する人は、ここからスコアとUIをつけて、UFOを4つ破壊したらゲームクリア、マイシップが3機破壊されたらゲームオーバーと表示するようにしてください。また、BGMと効果音をつけてください。そのうえでゲームのプレイ動画をキャプチャして提出してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?