【Unity】シーン(Scene)の使い方 切り替え・遷移

スクリーンショット 2019-08-14 16.19.35

先週ハッカソンに参加し、即興でUnityで作ることになりネットで調べながら作りました。調べたい情報がまとまっているところがあまりなく、苦労したので備忘録としてまとめていきます。

今回は、Unityでよく利用するシーン(Secen)についてです。シーン(Scene)は、Unityで開発する際の土台となる部分です。

タイトル画面からゲーム画面に移ったりい、スコア画面からもう一度ゲームするときなど画面を切り替える時には、シーンを切り絵たりすることが多いです。

シーン(Scene)の使い方として、オブジェクトの追加やシーンの遷移を説明します。

 

 

シーン(Scene)とは?

 

シーン(Scene)は、ゲームなどをする際の画面そのもののことをいい、ゲームの土台です。

ゲームのキャラクターやスコアなどを表示するテキスト(Text)などを配置する土台がシーン(Scene)です。これがないと開発が始まりません。

 

シーン(Scene)はどこに保存されている?

 

Unityのプロジェクトを作成すると、最初に「SampleScene」という名前のシーンが作成され、Main CameraとDirectional Lightがデフォルトで入っています。

スクリーンショット 2019-08-14 3.30.01

 

シーンの保存先は、ProjectビューのAssetsの中にあるScenesフォルダに入っています。バージョンによっては、フォルダの名前や場所が変わっている可能性があります。

スクリーンショット 2019-08-14 3.30.11

 

 

シーン(Scene)にオブジェクト(Object)を追加する

 

カメラと光だけでは、何もないので物体を追加してみます。

シーン(Scene)に関する操作は、Hierarchyビューでできます。Createボタンを押すと追加できるオブジェクトがリストで出てくるので、3D Object → Cubeで箱を追加します。

スクリーンショット 2019-08-14 3.39.06

 

すると、シーン(Scene)の中央に箱が出現します。

スクリーンショット 2019-08-14 3.53.55

 

 

新しいシーン(Scene)を作る

 

別のシーンを作ります。名前は、「SphereScene」とします。

ProjectビューのScenesの枠の中で右クリックをして、「Create」→「Scene」でNew Sceneが作成されます。作成時に名前変更できますが、もし別のところを間違えてクリックしてしまった場合、名前を変更したいSceneに右クリックすると「Rename」があるのでクリックして名前を変更しましょう。

スクリーンショット 2019-08-14 11.58.29

 

新しいシーンを編集する

 

新しく追加したSphereSceneを編集します。

まずは、Cubeを追加した今のSampleSceneを保存します。MacならCommand + SでWindowsならCtrl + Sです。その後、SphereSceneをダブルクリックするとSceneが開かれます。

Cubeがないデフォルトの状態のSphereSceneが開くとHierarchyの部分がSphereSceneになっていることがわかります。

スクリーンショット 2019-08-14 13.17.42

 

球を追加する

 

このシーン(Scene)に球(Sphere)を追加します。Cubeと同様でHierarchyのCreate→3D Object → Sphereを選ぶと球が登場します。

スクリーンショット 2019-08-14 14.06.51

 

Build Settingでシーンを追加する

 

Unityでプロジェクトを実行するときは、ビルド(Build)すると言います。

その設定で今回作成した「SphereScene」を追加しましょう。

Unityのメニューの「File」→「Build Settings」をクリックします。

スクリーンショット 2019-08-14 15.52.47

「Build Settings」という画面が出てくるので、ProjectビューのScenesフォルダからSphereSceneを「Scenes In Build」という枠の中にドラック&ドロップします。

afasfasf

「Scenes In Build」にScenes/SphereSceneが追加されているのを確認したら、Build Setting画面を閉じて大丈夫です。

 

 

シーンの切り替えをする

 

シーン(Scene)でよく利用される動作として別のシーンに切り替えることが挙げられます。ゲーム開始のタイトルシーンからゲームシーンに移動するときなどが一般的です。

本来は、ゲームスタートなどのボタンをクリックしてシーン切り替えをしますが、ボタンなど説明は別の機会にするため、今回はスペースキーを押して切り替えるようにします。

 

 

プログラムを作成する

 

プログラムは、C#で書きます。ProjectのフォルダでAssetsの中にScenesというフォルダと同じ階層に「Programs」というフォルダを作成します。

スクリーンショット 2019-08-14 14.54.03

 

次に「Programs」の中で右クリックして「Create」→「C# Script」を選択して「ScenesManagement」というプログラムを作成します。

スクリーンショット 2019-08-14 14.55.59

 

プログラムを開く

 

作成すると、デフォルトで少しプログラムが書かれています。

ScenesManagementをダブルクリックするとプログラムを編集するエディターが開きます。対応しているエディターが異なる場合がありますが、キャプチャではVisual Stuidoで開かれています。

 

 

シーン切り替えのプログラム

 

切り替えるためには、常に実行中でキーが押されたことを監視していなければいけません。

そこで、Update()関数でスペースキーが入力されたかを監視して、押された時に切り替えます。

また、シーンを切り替える時にはシーンを取り扱うための UnityEngine.SceneManagemntが必要となるため最初にusingで宣言します。

 

シーンにプログラムを追加する

 

Unityでは、プログラムを書いただけでは実行されません。シーンの中のオブジェクトにプログラムをアタッチして実行されます。

  1. まずは、SampleSceneに戻りましょう。ScencsのSampleSceneをダブルクリックします。
  2. hierarchyに新しくCreateで「Create Empty」という空のオブジェクトを追加して、その中にプログラムを追加します。
  3. 空のオブジェクトは、「GameObject」という名前で作成されているので、一度クリックするとInspectorビューで「Add Component」というボタン表示されます。
  4. 「Add Component」をクリックすると追加するコンポーネントをSearchする画面が出るので、「scene」と打つと先ほど作成した「ScenesManagement」が表示されるのでクリックして追加します。
  5. 最後にUnityの画面の中央上にある実行ボタン(再生ボタン)をクリックすると実行されます。
  6. スペースキーを押してシーンが切り替わるのを確認できたらOKです。
  7. ※赤いエラーで「Scene ‘SphereScene’ couldN7t be loaded ~~」と出ている場合は、シーンを追加する章のBuild Setting部分が抜けているので確認してください。

 

スクリーンショット 2019-08-14 15.45.17

 

 

まとめ

 

シーン(Scene)の使い方の入門編でした。

  • シーンの説明
  • 新しいシーンの追加方法
  • シーンの切り替えプログラムの作成と追加方法

これらは、最初にゲームを作る上で基礎となる知識です。慣れたら最初からフレームワークとしてTitleSceneやGameSceneなどを作ってからゲーム内容を考え始めていくかもしれません。

しかし、ScenesManagementなのに、SphereSceneからSampleSceneに移動できません。この続きは別で紹介していきたいと思います。

 

 


Sponsored Link

コメントを残す

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