using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; /// /// 步骤状态(管理一个步骤下的所有需要初始化的状态) /// public class StepState : MonoBehaviour { [HideInInspector] public int systemId; [HideInInspector] public int schemeId; [HideInInspector] public int subProcessId; public Dictionary steps; public void Init() { subProcessId = int.Parse(gameObject.name); schemeId = int.Parse(transform.parent.name); systemId = int.Parse(transform.parent.parent.name); } /// /// 跳场景并且执行场景状态设置 /// /// /// public void InvokeChangeScene(E_SceneType jumpSence, Action doStepState) { string sname = ""; switch (jumpSence) { case E_SceneType.None: return; case E_SceneType.Office: sname = "03_OfficeScene"; break; case E_SceneType.ToolRoom: sname = "04_ToolMaterialScene"; break; case E_SceneType.Site: sname = "05_LiveScene"; break; default: return; } if (GameManager.RunModelMgr.SceneType != jumpSence) { //跳场景 GameManager.UIMgr.ShowPanel(E_UI_Layer.System); GameManager.ScenesMgr.LoadSceneAsyn(sname, () => { Debug.Log("步骤场景:" + jumpSence.ToString()); GameManager.UIMgr.HidePanel(); GameManager.RunModelMgr.SceneType = jumpSence; GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchScene, jumpSence); GameManager.EventMgr.EventTrigger(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.d_Scheme.CurrentProcess.CurrentSubProcess.CurrentSubProcessStep.triggersId[0]); doStepState.Invoke(true); }); } else { doStepState.Invoke(false); } } }