
產生asset:Create > Level > levelFlow雙擊可開啟編輯器。
Tool Bar:

- Save / Load :
- 存讀檔。
- Update current scene :
- 如果編輯器上有對應目前scene的level node,即可自動抓取類別"ConnectPoint"的進入點物件(GameObject或UI都行。),並投影在節點範圍上。
- Load all scene :
- 讀取與預覽編輯器上的所有scene。
- Close scenes :
- 關閉除了目前場景的其他場景。
Start Node
- name:
- 指定進入點名稱。
- 進入時呼叫:
LevelFlowManager.LoadFromStart("StartPoint"); |
- Level Node:
- [ Async | Sync ]
- Async: 在背景同步載入。
- Sync: 遊戲會等待Scene載完。
- [ Single | Additive ]
- Single: 卸載其他場景,只載入自己;如果Main Scene有設定,則關閉自己與MainScene之外的場景。
- Additive: 附加到目前遊戲。
public class LoadFirstSceneControl : MonoBehaviour { public LevelMapSO data; private void Start() { //NOTE: You can do a check-point loading to //load to the certain scene. LevelFlowManager.flowData = data; LevelFlowManager.LoadFromStart("StartPoint"); } } |
public class MyPoint : ConnectPoint { public void LoadNext(){ LevelFlowManager.LoadNextScene(portSetId); } } |
public static event Action<string> OnConnectPointEntered; |
範例:將玩家移動到對應的進入點。
public void OnEnable() { LevelFlowManager.OnConnectPointEntered += MovePlayerHere; } public void OnDisable() { LevelFlowManager.OnConnectPointEntered -= MovePlayerHere; } private void MovePlayerHere(string _enterPoint) { if (_enterPoint == portSetId) { GameObject.FindGameObjectWithTag("Player").transform.position = transform.position; } } |
後記:
介紹原理的文章等等另外打一篇好了。
此工具還在封測中XD,有bug歡迎回報。