SceneLayerEditorの操作方法 - Katsuya100/SceneLayer-Trial GitHub Wiki

SceneLayerプロジェクトの作成

SceneLayerを使うためには、まずエディタ上でセットアップを行います。
このセットアップではSceneLayerプロジェクトと呼ばれるプロジェクトディレクトリを作成します。

手順

  1. Assets以下の好きな場所にフォルダを作成。フォルダ名は自由につける。 (例: SceneLayerProject など。)
    image
  2. 作成したフォルダを右クリック > Create > SceneLayer > Projectを選択
    image

このフォルダがSceneLayerのプロジェクトフォルダになります。

ランタイム準備

ランタイムで、SceneLayerを使うためのセットアップを行います。
このセットアップでは初回起動シーンにコントローラーを配置します。

手順

  1. 初回起動シーンを作成する。(例:GameSample.unity)
  2. Hierarchy上で右クリック > Create Empty
  3. 作成したGameObjectをクリック
  4. Inspector上でAdd Component > Scene Layer Controllerを選択。
    image
  5. Entryプロパティに [SceneLayerプロジェクトフォルダ]/Runtime/Entry をドラッグ&ドロップ。
    image image
  6. シーンを保存する。

SceneLayerEditorの使い方

SceneLayerのシーン遷移を組むためにはSceneLayerEditorを使用します。 ここでは、SceneLayerEditorの機能を一覧して解説していきます。

開き方

  1. [SceneLayerプロジェクトフォルダ]/Editor/SceneLayerProject を選択。
    image
  2. Inspectorから Open Scene Layer Editor を選択。
    image
  3. SceneLayerEditorが開く。
    image

エディタ上の右クリックメニュー

image

機能名 説明
Add Layer Layerを追加する。詳しくはLayerを参照。
Paste Layer コピーしたLayerを複製して貼り付ける。コピー方法はLayerの右クリックメニューを参照。
Focus Running Layer Playモード用の機能。実行中のLayerにフォーカスする。
Open Entry Scene 現在編集中のSceneLayerが関連づいているシーンを開く。関連付けるにはランタイム準備の手順を行う。

Layer

Layer とは、一画面の単位のことを指します。
一画面内のゲームシステムや、オブジェクト管理を主な役割としています。
また、Layerをカスタムすればゲームコードの実装が可能になります。

Layerの作成

  1. SceneLayerEditorの何も配置されていない場所で右クリック > Add Layerを選択。
    image
  2. ノードが生成される。
    image

このノードがLayerです。
Layerを作成すると、実体となるScriptableObjectがProject上に作成されます。

Layerの右クリックメニュー

image

機能名 説明
Copy Layer Layerをコピーする。エディタ上の右クリックメニューPaste Layerを使って複製する。
Remove Layer Layerを削除する。
Create Transition Transitionを作成する。詳しくはTransitionを参照。
Set Entry 最初に実行するLayerとして設定する。

Layerの編集

image
LayerをクリックするとProject上の実体が選択され、Inspector上に編集画面が表示されます。

パラメーター 説明
Active Layerの有効状態。チェックを外すと無効なLayerになる。
Beheviour Type Layerの型を指定する。カスタムしたスクリプトを指定できる。(Behaviourをカスタムするを参照。)
Name Layerの名前を指定する
Preview Layer Layerをプレビューする。製品版専用機能。(Layerのプレビュー(製品版のみ)を参照。)
+ Loaderを追加する。画面上にオブジェクトを表示するにはLoaderを使う。(Loaderの作成を参照。)

子Layerの作成

Layerをダブルクリックすると子Layerの作成が行われます。
SceneLayerEditorの上部のバーから親レイヤーの編集画面に戻れます。
image

Transition

Transitionとは画面遷移を指します。
TransitionによってLayerLayerをつなぐと、Layer間を遷移できるようになります。
この機能によって、Hierarchyのオブジェクトを変更できます。

Transitionの作成

  1. SceneLayerEditor上にあるLayer上で右クリック > Create Transitionを選択。
    image
  2. 他のLayerを選択
  3. Layer間が矢印で結ばれる。
    image

この矢印をTransitionと呼びます。

Transitionの右クリックメニュー

image

機能名 説明
Disconnect Transition Transitionの接続を解除する。

Transitionの編集

image
TransitionをクリックするとProject上の実体が選択され、Inspector上に編集画面が表示されます。

パラメーター 説明
Active Transitionの有効状態。チェックを外すと無効なTransitionになる。
Beheviour Type Transitionの型を指定する。カスタムしたスクリプトを指定できる。(Behaviourをカスタムするを参照。)
Out/In Mapping Transitionを介してLayer間のデータ転送を設定できる。(Layer間データ転送を参照。)
+ 同じ遷移元/遷移先を持つTransitionを作成する。
- Transitionを削除する。

TriggerなどのプリセットされたTransitionについてはプリセットされたBehaviourを参照してください。

AnyからTransitionをつなぐと

image
AnyからTransitionをつなぐと、すべてのLayerから遷移できるようになります。
ただしTransitionBehaviourのScriptableObjectは1つしか生成されません。
そのため、どのLayerから遷移しても、必ず同じTransitionを使用します。

Loader

LoaderとはアセットをLoadする機能を指します。
Load Instantiate Destroy Unloadを担当します。

Loaderの作成

  1. SceneLayerEditor上にあるLayerを選択。
  2. Inspector上の+ボタンを選択
    image
  3. Inspector上に項目が増える。

ここで増えた項目をLoaderと呼びます。
Loaderを作成すると、実体となるScriptableObjectがProject上に作成されます。

Loaderの右クリックメニュー

image

機能名 説明
Move Up Loaderを上に移動する。
Move Most Up Loaderを一番上に移動する。
Move Down Loaderを下に移動する。
Move Most Down Loaderを一番下に移動する。
Duplicate Loaderを複製する。

Loaderの編集

image

パラメーター 説明
Beheviour Type Loaderの型を指定する。カスタムしたスクリプトを指定できる。(Behaviourをカスタムするを参照。)
Name Loaderの名前を設定する。
Advanced Options より高レベルな機能。

SceneLoaderなどのプリセットされたLoaderについてはプリセットされたBehaviourを参照してください。

Advanced Options

image

パラメーター 説明
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を待機させる。