Google PlayGroundのチュートリアル動画を元に、授業向け資料を作りました(Unity 2017.4.33f1版)
その1 https://www.youtube.com/watch?v=u46DvalJW7E
PlayGroundの準備
1:Unity PlayGround.zipをダウンロードして解凍する。Unity Hubを起動して「リストに追加」をクリックする。
2:解凍したUnity PlayGroundフォルダをクリックして開く。
3:図の階層まで開いて、「フォルダーの選択」ボタンをクリックする。
4:Unity HubにUnity PlayGroundフォルダが登録されたら、クリックする。
5:Unityエディタが開いたら、プロジェクトエリアで右クリックして、Create>Folderを選択する。
6:新規フォルダができたら、「GalaxyWars」を入力してフォルダ名をつけよう。
8:Assets>GalaxyWarsフォルダをクリックして開く。
9:GalaxyWarsフォルダ内にファイル名「GalaxyWars」と入力して保存する。
10:UnityエディタのAssets>GalaxyWarsフォルダ内に、新規シーンファイル「GalaxyWars.unity」ができればOKだ。
※以下、シーンファイルの名称が異なっていますが、そこは無視してください。また、Unityのバージョンが古いため、UIが異なっていますが、そこも無視してください。
ステージの作成
1:Unityエディタのメニューから「Game」タブをクリックし、画角メニューから「16:9」を選択しよう
1:その後、Sceneタブをクリックして戻り、Project欄から「Assets」→「Images」→「Backgrounds」→「BG_Space」を選択し、シーンビューにドラッグ&ドロップします
2:Hierarchy欄で「BG_Space」をクリックし、Imspector欄のTransform→Positionで、「X=-5」「Y=0」にします
3:同じように「BG_Space」をシーンビューにドラッグ&ドロップし、今度は「X=5」「Y=0」にします。これで2枚の画像ファイルが横に並びます
4:HierarchyでBG_Spaceを選択し、InspectorのSprite RendererコンポーネントのVisibility Optionsメニューを開き、Sorting Layerメニューで「Background」を選びましょう
5:同様にHierarchyでBG_Space(1)を選択し、InspectorのSprite RendererコンポーネントのVisibility Optionsメニューを開き、Sorting Layerメニューで「Background」を選びましょう。これで背景が自動的に一番奥のレイヤーになります
6:Project欄から「Assets」→「Images」→「Blocks」→「metal」を選択し、シーンビューにドラッグ&ドロップします。その後、Imspector欄のTransform→Positionで、「X=-9」「Y=0」にします
7:同じように「metal」をシーンビューにドラッグ&ドロップし、今度は「X=9」「Y=0」にします
8:Hierarchy欄の「metal」と「metal(1)」を両方選択し、「Draw Mode」を「Tiled」にします
10:Hierarchy欄の「metal」と「metal(1)」を両方選択したまま、Tagを「Ground」にします
11:Hierarchy欄の「metal」と「metal(1)」を両方選択したまま、Add Componentの検索欄に「Box Collider 2D」と入力し、Search欄に表示されたらEnterを押して設定します
12:Box Collider 2DのSize欄のYエリアに「10」と入力します。これで左右の壁に当たり判定がつきます。Hierarchy欄の「metal」と「metal(1)」をそれぞれクリックして、両方の壁に同じ設定がなされているか確認してください
アステロイドの配置
1:続いて障害物となるアステロイドを設定します。まずProject欄から「Assets」→「Images」→「Asteroids」→「Asteroid2」を選択し、シーンビューにドラッグ&ドロップします。その後、Tagを「Enemy」にします
2:Asteroid2のImspector欄→Transform→Scale欄で、「X=0.3」「Y=0.3」にします
3:Asteroid2のImspector欄→Transform欄でXのPositionを「-8」、Yを「0」にします
4:Asteroid2のImspector欄→Add Componentから、検索欄に「Rigidbody 2D」Rigと入力し、そのままEnterを押してアタッチします。その後、Rigidbody 2DのFriction欄を10、Gravity欄を0にします
5:Asteroid2のImspector欄からRigidbody 2Dの「Constraints」欄を開き、Freeze Positionの「Y」にチェックを入れます
6:同じくAdd Componentから「Auto Rotate」をアタッチします
7:同じくAdd Componentから「Polygon Collider 2D」をアタッチします。これで隕石に当たり判定がつきます
8:同じくAdd Componentから「Auto Move」をアタッチします
9:Asteroid2のImspector欄→Auto Move→Directionで「X」を5,「Y」を0にします。また、Relative To Rotationのチェックを外します
11:再生ボタンを押すと隕石が回転しながら左から右に進んでいきます
12:Asteroid2のImspector欄からAdd Component→「Condition collision」を選択し、アタッチします
13:Asteroid2のImspector欄→「Condition collision」→「Filter by Tag」にチェックを入れ、「Tag to Check for」メニューで「Ground」を選択します
14:同じくCondition collision欄の「Gameplay Actions」メニューから「TeleportAction」を選択します
15:Teleport Action欄の「New Position」欄で「X」を-8、「Y」を0にします
16:再び再生ボタンを押すと、隕石が回転しながら右に進み、端まで行くと消えて、今度は左端から出現します
17:Project欄からAssets→Prefabsを選択します。次にHierarchyから「Asteroid2」をProject欄にドラッグ&ドロップして、Prefabsにします
18:Prefabsにしたら、Hierarchy欄の「Asteroid2」を削除します
19:PrefabsのAsteroid2を4回、Hierarchy欄にドラッグ&ドロップします。その後、Asteroid2をそれぞれクリックし、Transform欄のPositionにあるX座標を「-8」「-4」「0」「4」にします。Y座標はすべて「0」にします。こうすることで、4つの隕石が横に並びます
20:再生ボタンをクリックすると、4つの隕石が右に向かって進み、延々とループします
21:Hierarchy欄で4つのAsteroid2を選択し、Ctrl+Cで一喝コピーします。その後、Ctrl+Vでペーストし、新たに4つのAsteroid2を作成します
22:新たに作った4つのAsteroid2を選択したまま、Auto Move欄のDirectionで、Xを「-5」にします
23:同じく4つのAsteroid2を選択したまま、Imspector欄のTransform欄→Y座標を「2」にします
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」にします。
25:再生ボタンをクリックすると、隕石が2列になってそれぞれ別の方向に、回転しながら進んでいきます
その2
https://www.youtube.com/watch?v=wxeh9zv7knA
マイシップの配置
1:Project→Images→Spaceshipから赤い宇宙船「SpaceshipRed」を選択し、シーンビューにドラッグ&ドロップします。
2:SpaceshipRedを選択し、Transform欄でPositionから「X座標」を0、「Y座標」を-4にします。その後、Transform→ScaleでXを0.3、Yを0.3にします
3:SpaceshipRedのImspector欄でAdd ComponentからPolygon Collider 2Dを選択し、アタッチします
4:同様にSpaceshipRedのImspector欄でAdd ComponentからRigidbody 2Dを選択し、アタッチします
5:SpaceshipRedのImspector欄からRigidbody 2DでFrictionを10、Gravityを0にします
6:SpaceshipRedのImspector欄でAdd ComponentからMove with Allowsを選択し、アタッチします
7:SpaceshipRedのImspector欄でMove with AllowsからType of ControlをWASD、Speedを3、Movement TypeをOnly Horizontalにします
8:再生ボタンを押し、AとDで左右に宇宙船が動くことを確認します
9:SpaceshipRedを選択し、Tag欄から「Player」を選択します
10:SpaceshipRedを選択し、Inspector欄から名前を「Spaceship_Standby」に変更します
11:あらかじめProject欄からAssets→Prefabsを開いておきます。次にHierarchy欄からSpaceship_Standbyを選択し、Project欄にドラッグ&ドロップして、Prefabsにします
発射後のマイシップの作成
12:このゲームでは待機中にスペースキーを押すと発進し、発進後にスペースキーを押すと速度がアップします。そのため待機中と飛行中で異なるマイシップを作成します。はじめにHierarchyのSpaceship_Standbyを選択し、右クリックしてUnpack Prefab Completelyを選択して、シーンビューのキャラクターをPrefabから分離します
2:はじめにHierarchy欄からSpaceship_Standbyを選択します。次にInspector欄で名前を「Spaceship_Launched」に変更します
3:Starship_Launchedを選択し、Imspector欄からAdd Component→Auto Moveを選択して、アタッチします
4:Starship_LaunchedのInspector欄でAuto Moveにある「Direction」で、X座標を0、Y座標を2に設定します。次にRigidbody 2DのConstraintsメニューを開き、Freeze RotationでZにチェックを入れます
5:再生ボタンを押し、宇宙船が自動的に画面上に移動することを確認します
6:同じくStarship_Launchedを選択し、Imspector欄からAdd Component→Pushを選択して、アタッチします
7:Starship_LaunchedのImspector欄→Push欄で、Push Strengthを10、AxisをYにします
8:再生ボタンを押し、スペースキーを押すと宇宙船の移動速度が増加することを確認します
9:あらかじめProject欄からAssets→Prefabsを開いておきます。次にHierarchy欄からSpaceship_Launchedを選択し、Project欄にドラッグ&ドロップして、Prefabsにします
10:Hierarchy欄からStarship_Launchedを削除します
11:Project欄からAssets→Prefabsを開き、Starship_StandbyをHierarchy欄にドラッグ&ドロップして、シーンビューに表示させます。次にProject欄のTransform→Positionから、X座標を0,Y座標を-4にします
12:プロジェクトエリアにあるStarship_Standby Prefabを選択し、InspectorでOpen Prefabをクリックします
13:InspectorのAdd ComponentからCondition Key Pressを絞り込み検索し、アタッチします
14:Conditiopn Key OressコンポーネントにあるGameplay Actionsの+ボタンをクリックし、メニューからDestroyActionを選択します
15:Destroy ActionコンポーネントでTargetをThis Objectにします
16:Condition Key Pressコンポーネントの+ボタンをクリックし、メニューからCreateObjectActionを選択します
17:Starship_Standby PrefabのInspectorにあるCreate Object ActionコンポーネントのPrefab To Createスロットに、プロジェクトエリアのStarship_Launched Prefabをドラッグ&ドロップして設定します。また、同じ欄にあるRelative To This Objectにチェックを入れます
18:再生ボタンをクリックし、スペースキーを押すと宇宙船が上方に移動することを確認します
19:プロジェクトエリアでStarship_Launced Prefabを選択し、InspectorでOpen Prefabをクリックします
20:Imspector欄のAdd ComponentからCondition collisionを絞り込み検索して、アタッチします
21:Imspector欄のCondition collisionコンポーネントでFilter by Tagにチェックを入れます。次にTag to check forメニューからEnemyを選択します
22:Condition collisionコンポーネントにあるGameplay Actionsの+ボタンをクリックし、メニューからDestroy Actionを選択します
23:Destroy Actionメニューから「This Object」を選択します
24:Death Effect欄の横にある〇をクリックし、Select GameObjectウィンドウを開きます。その後、Assetsタブをクリックし、一覧からP_Explosionを選択します。最後に✕ボタンをクリックしてウィンドウを閉じます
25:再生ボタンをクリックし、宇宙船が隕石にぶつかると爆発エフェクトが描写されるとともに、宇宙船が消えることを確認します
その3
https://www.youtube.com/watch?v=DhzB9ntiZ2o
26:再びStarship_Launched Prefabを選択し、InspectorでOpen Prefabをクリックします
27:Condition collisionコンポーネントにあるGameplay Actionsの+ボタンをクリックして、Create Object Actionを選択します
28:Spaceship_LaunchedのInspectorからCreate Object ActionコンポーネントのPrefab To Create欄に、Starship_StandbyのPrefabsをドラッグ&ドロップして設定します。その後、New PositionのX座標を0、Y座標を-4にします
29:ゲームを再生し、AとDで宇宙船が左右移動すること、スペースキーを押すと上に移動すること、スペースキーを押している間は速度が増すこと、隕石にぶつかったら爆発して元の位置に戻ることを確認します
天井の作成
1:メニューからGameObject→Create Emptyを選択します
2:GameObjectのImspector欄にあるAdd Componentの検索窓からBox Collider 2Dと入力し、アタッチします
3:GameObjectのTransform欄にあるPositonから、X座標を0、Y座標を5.5にします
4:Box Collider 2DのSize欄でXを19、Yを1にします
5:GameObjectの名称をRespawnにします。また、TagメニューからRespawnを選択します
6:RespawnのInspector欄から、Add Componentの検索窓にCondition collisionと入力し、アタッチします
7:RespawnのImspector→Condition collisionでFilter by Tagにチェックを入れ、Tag to Check forメニューからPlayerを選択します
8:RespawnのImspector→Condition collision欄にあるGameplay Actionsの+ボタンをクリックし、メニューからDestroyActionを選択します
9:同じくRespawnのImspector→Condition collision欄にあるGameplay Actionsの+ボタンをクリックし、メニューからCreate Object Actionを選択します
10:Respawnを選択したまま、Assets→PrefabsにあるStarship_StandbyのPrefabsを、Create Object Action欄のPrefabs To Create欄にドラッグ&ドロップして設定します。また、New PositionのX座標を0、Y座標を-4にします
11:再生ボタンをクリックし、宇宙船が画面上方に到達したら、再び画面下方でスタンバイ状態になることを確認します
ターゲットの作成
1:Assets→Images→SpaceshipからSpaceship_Blueを選択し、シーンビューにドラッグ&ドロップします
2:Spaceship_Blueを選択し、Imspector欄のTransformにあるPositon欄で、X座標を-7.5、Y座標を4.5にします。また、ScaleでX=0.3、Y=0.3にします
3:Spaceship_BlueのImspectorにあるAdd Componentの検索窓にPolygon Collider 2Dと入力し、アタッチします
4:同じくSpaceship_BlueのImspectorにあるAdd Componentの検索窓にRigidbody 2Dと入力し、アタッチします
5:Spaceship_Blue→Imspector→Rigidbody 2DのFrictionを10、Gravityを0にします。その後、Add Componentの検索窓からAuto Moveと入力し、アタッチします
6:Spaceship_Blue→Imspector→Auto MoveのDirectionでX座標を10、Y座標を0にします
7:同じくSpaceship_BlueのImspectorにあるAdd Componentの検索窓にCondition Collisionと入力し、アタッチします
8:Spaceship_Blue→Imspector→Condition collisionでFilter by Tagにチェックを入れ、Tag to Check forメニューからGroundを選択します
9:同じくSpaceship_Blue→Imspector→Condition collisionのGameplay Actionsにある+ボタンをクリックし、TeleportAtionを選択します
10:Spaceship_Blue→Imspector→TeleportAtion→New PositionでX座標を-7.5、Y座標を4.5にします
11:Spaceship_Blue→Imspector→Rigidbody 2DでConstraintsを開き、Freeze PositionのYと、Freeze RotationのZに、それぞれチェックを入れます
12:再生ボタンをクリックし、Spaceship_Blueが画面上方で左から右にループ移動することを確認します
13:Spaceship_Blue→Imspector→Add Componentの検索窓にCondition collisionと入力し、アタッチします
14:Spaceship_Blue→Imspector→Condition collisionのFilter by Tagにチェックし、Tag to Check forメニューからPlayerを選択します
15:Spaceship_Blue→Imspector→Condition collisionのGameplay Actionsにある+ボタンをクリックし、DestroyActionを選択します
16:Spaceship_Blue→Imspector→DestroyAction欄にあるTargetメニューをThis Objectにします
17:Spaceship_Blue→Imspector→DestroyAction欄にあるDeath Effect欄右の〇をクリックし、検索窓にP_Explosionと入力して選択します
18:再生ボタンをクリックし、赤い宇宙船を操作して青い宇宙船に衝突させたら、青い宇宙船が破壊されることを確認します
19:Spaceship_Blueの名前をUFOに変更します。その後、Hierarchy欄からAssets→Prefabsにドラッグ&ドロップし、Prefabsにします
20:UFOがPrefabsにされたら、Hierarchy欄から削除します
21:Assets→PrefabsからUFOをHierarchyにドラッグ&ドロップします。これを4回繰り返します。
22:Hierarchy欄の4つのUFOで、Imspector→Transform→PositonのX座標とY座標を一つずつ設定します。Y座標はすべて4.5で、X座標は「-7.5」「-4」「0」「4」とします
23:再生ボタンをクリックし、ゲームがきちんと動作するか確認します
Nコースの課題はこれで終了です。ゲームのプレイ動画をキャプチャして提出してください。
Sコースの課題に挑戦する人は、ここからスコアとUIをつけて、UFOを4つ破壊したらゲームクリア、マイシップが3機破壊されたらゲームオーバーと表示するようにしてください。また、BGMと効果音をつけてください。そのうえでゲームのプレイ動画をキャプチャして提出してください。