SceneLayerEditorの操作方法 - Katsuya100/SceneLayer-Trial GitHub Wiki
SceneLayerプロジェクトの作成
SceneLayerを使うためには、まずエディタ上でセットアップを行います。
このセットアップではSceneLayerプロジェクト
と呼ばれるプロジェクトディレクトリを作成します。
手順
- Assets以下の好きな場所にフォルダを作成。フォルダ名は自由につける。 (例:
SceneLayerProject
など。)
- 作成したフォルダを
右クリック > Create > SceneLayer > Project
を選択
このフォルダがSceneLayerのプロジェクトフォルダになります。
ランタイム準備
ランタイムで、SceneLayerを使うためのセットアップを行います。
このセットアップでは初回起動シーンにコントローラーを配置します。
手順
- 初回起動シーンを作成する。(例:
GameSample.unity
) - Hierarchy上で
右クリック > Create Empty
- 作成したGameObjectをクリック
- Inspector上で
Add Component > Scene Layer Controller
を選択。
- Entryプロパティに
[SceneLayerプロジェクトフォルダ]/Runtime/Entry
をドラッグ&ドロップ。
- シーンを保存する。
SceneLayerEditorの使い方
SceneLayerのシーン遷移を組むためにはSceneLayerEditor
を使用します。
ここでは、SceneLayerEditor
の機能を一覧して解説していきます。
開き方
[SceneLayerプロジェクトフォルダ]/Editor/SceneLayerProject
を選択。
- Inspectorから
Open Scene Layer Editor
を選択。
SceneLayerEditor
が開く。
エディタ上の右クリックメニュー
機能名 | 説明 |
---|---|
Add Layer | Layer を追加する。詳しくはLayerを参照。 |
Paste Layer | コピーしたLayer を複製して貼り付ける。コピー方法はLayerの右クリックメニューを参照。 |
Focus Running Layer | Playモード用の機能。実行中のLayer にフォーカスする。 |
Open Entry Scene | 現在編集中のSceneLayerが関連づいているシーンを開く。関連付けるにはランタイム準備の手順を行う。 |
Layer
Layer
とは、一画面の単位のことを指します。
一画面内のゲームシステムや、オブジェクト管理を主な役割としています。
また、Layerをカスタムすればゲームコードの実装が可能になります。
Layerの作成
SceneLayerEditor
の何も配置されていない場所で右クリック > Add Layer
を選択。
- ノードが生成される。
このノードがLayer
です。
Layer
を作成すると、実体となるScriptableObjectがProject上に作成されます。
Layerの右クリックメニュー
機能名 | 説明 |
---|---|
Copy Layer | Layer をコピーする。エディタ上の右クリックメニューのPaste Layer を使って複製する。 |
Remove Layer | Layer を削除する。 |
Create Transition | Transition を作成する。詳しくはTransitionを参照。 |
Set Entry | 最初に実行するLayer として設定する。 |
Layerの編集
Layer
をクリックするとProject上の実体が選択され、Inspector上に編集画面が表示されます。
パラメーター | 説明 |
---|---|
Active | Layer の有効状態。チェックを外すと無効なLayer になる。 |
Beheviour Type | Layer の型を指定する。カスタムしたスクリプトを指定できる。(Behaviourをカスタムするを参照。) |
Name | Layer の名前を指定する |
Preview Layer | Layer をプレビューする。製品版専用機能。(Layerのプレビュー(製品版のみ)を参照。) |
+ | Loaderを追加する。画面上にオブジェクトを表示するにはLoader を使う。(Loaderの作成を参照。) |
子Layerの作成
Layer
をダブルクリックすると子Layer
の作成が行われます。
SceneLayerEditor
の上部のバーから親レイヤーの編集画面に戻れます。
Transition
Transition
とは画面遷移を指します。
Transition
によってLayer
とLayer
をつなぐと、Layer
間を遷移できるようになります。
この機能によって、Hierarchyのオブジェクトを変更できます。
Transitionの作成
SceneLayerEditor
上にあるLayer
上で右クリック > Create Transition
を選択。
- 他の
Layer
を選択 Layer
間が矢印で結ばれる。
この矢印をTransition
と呼びます。
Transitionの右クリックメニュー
機能名 | 説明 |
---|---|
Disconnect Transition | Transition の接続を解除する。 |
Transitionの編集
Transition
をクリックするとProject上の実体が選択され、Inspector上に編集画面が表示されます。
パラメーター | 説明 |
---|---|
Active | Transition の有効状態。チェックを外すと無効なTransition になる。 |
Beheviour Type | Transition の型を指定する。カスタムしたスクリプトを指定できる。(Behaviourをカスタムするを参照。) |
Out/In Mapping | Transition を介してLayer 間のデータ転送を設定できる。(Layer間データ転送を参照。) |
+ | 同じ遷移元/遷移先を持つTransition を作成する。 |
- | Transition を削除する。 |
Trigger
などのプリセットされたTransition
についてはプリセットされたBehaviourを参照してください。
AnyからTransitionをつなぐと
Any
からTransition
をつなぐと、すべてのLayer
から遷移できるようになります。
ただしTransitionBehaviour
のScriptableObjectは1つしか生成されません。
そのため、どのLayer
から遷移しても、必ず同じTransition
を使用します。
Loader
Loader
とはアセットをLoadする機能を指します。
Load
Instantiate
Destroy
Unload
を担当します。
Loaderの作成
SceneLayerEditor
上にあるLayer
を選択。- Inspector上の
+
ボタンを選択
- Inspector上に項目が増える。
ここで増えた項目をLoader
と呼びます。
Loader
を作成すると、実体となるScriptableObjectがProject上に作成されます。
Loaderの右クリックメニュー
機能名 | 説明 |
---|---|
Move Up | Loader を上に移動する。 |
Move Most Up | Loader を一番上に移動する。 |
Move Down | Loader を下に移動する。 |
Move Most Down | Loader を一番下に移動する。 |
Duplicate | Loader を複製する。 |
Loaderの編集
パラメーター | 説明 |
---|---|
Beheviour Type | Loader の型を指定する。カスタムしたスクリプトを指定できる。(Behaviourをカスタムするを参照。) |
Name | Loader の名前を設定する。 |
Advanced Options | より高レベルな機能。 |
SceneLoader
などのプリセットされたLoader
についてはプリセットされたBehaviourを参照してください。
Advanced Options
パラメーター | 説明 |
---|---|
Receive Field | Instantiateしたオブジェクトを渡す変数を指定できる。(LoaderのインスタンスイベントをLayerで受け取るを参照。) |
On Instantiated | Instantiateしたオブジェクトを渡す関数を指定できる。(LoaderのインスタンスイベントをLayerで受け取るを参照。) |
On Destroyed | Destroyした通知を渡す変数を指定できる。(LoaderのインスタンスイベントをLayerで受け取るを参照。) |
Load From | どのLayer でLoadを実行するかを指定できる。指定されていないLayer に遷移した場合、Unloadされる。(プリロードを参照) |
Load.Start | Loadを開始するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Load.Wait For Complete | Loadを待機するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Instantiate.Start | Instantiateを開始するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Instantiate.Wait For Complete | Instantiateを待機するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Destroy.Start | Destroyを開始するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Destroy.Wait For Complete | Destroyを待機するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Unload.Start | Unloadを開始するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Unload.Wait For Complete | Unloadを待機するタイミングをシーケンスイベントで指定する。(Loaderの処理の開始、待機のタイミングを指定するを参照。) |
Dependence Loader | 複数のLoader があるときに利用可能。依存しているLoader を指定できる。依存を指定すると、依存先が完了するまでLoader を待機させる。 |