using System; using System.Collections.Generic; using Immersal; using Sirenix.OdinInspector; using Stary.Evo; using UnityEngine; namespace Stary.Evo { public class HybridClREntrance : MonoBehaviour { private FsmLoadSystem _fsmSystem; public string domain; private void Awake() { _fsmSystem = new FsmLoadSystem(); // 初始化日志 _fsmSystem.AddState(new ResStartState(_fsmSystem)); _fsmSystem.AddState(new ResUpdateServerState(_fsmSystem)); _fsmSystem.AddState(new ResUpdateLocalState(_fsmSystem)); _fsmSystem.AddState(new HotFixState(_fsmSystem)); _fsmSystem.AddState(new LoadResState(_fsmSystem)); //_fsmSystem.AddState(new LoadResMainState(_fsmSystem)); } private void Start() { #if !UNITY_EDITOR domain = "Main"; #elif UNITY_EDITOR var immersalSDK = FindObjectOfType(); immersalSDK.onPoseFound.Invoke(); #endif AppConfig.PackageDomainName = domain; _fsmSystem.SetCurState(nameof(ResStartState)); } public void OpenDomain() { AppConfig.PackageDomainName = domain; _fsmSystem.SetCurState(nameof(ResStartState)); } public void OpenDomain(string domain, OpenDomainType openDomainType) { _fsmSystem.SetOpenDomainType(openDomainType); AppConfig.PackageDomainName = domain; _fsmSystem.SetCurState(nameof(ResStartState)); } public void OpenDomain(string domain, string openDomainType) { _fsmSystem.SetOpenDomainType((OpenDomainType)Enum.Parse(typeof(OpenDomainType), openDomainType)); AppConfig.PackageDomainName = domain; _fsmSystem.SetCurState(nameof(ResStartState)); } public void CloseDomain() { _fsmSystem.SetCurState(nameof(DefaultStateAsync)); } private void Update() { if(_fsmSystem.CurState != null) _fsmSystem.CurState.OnUpdate(); } } /// /// 打开的项目类型 /// DEFAULT:默认打开方式 /// VIOICE:语音打开方式 /// public enum OpenDomainType { PointCloud, VIOICE, Editor, ImageTracked, } }