2025-05-23 18:26:47 +08:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace Stary.Evo
|
|
|
|
|
{
|
|
|
|
|
public class HybridClREntrance : MonoBehaviour
|
|
|
|
|
{
|
2025-09-04 11:43:35 +08:00
|
|
|
public static HybridClREntrance Global;
|
2025-05-23 18:26:47 +08:00
|
|
|
public string domain;
|
|
|
|
|
|
2025-09-04 11:43:35 +08:00
|
|
|
private FsmLoadSystem _fsmSystem;
|
2025-09-10 15:52:11 +08:00
|
|
|
|
2025-09-04 11:43:35 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 即将加载的domain场景
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string loadDomain;
|
2025-05-23 18:26:47 +08:00
|
|
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
{
|
2025-09-04 11:43:35 +08:00
|
|
|
if (Global == null)
|
|
|
|
|
{
|
|
|
|
|
Global = this;
|
|
|
|
|
DontDestroyOnLoad(gameObject);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Destroy(gameObject);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-23 18:26:47 +08:00
|
|
|
_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));
|
2025-07-02 10:05:26 +08:00
|
|
|
//_fsmSystem.AddState(new LoadResMainState(_fsmSystem));
|
2025-05-23 18:26:47 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
|
{
|
|
|
|
|
#if !UNITY_EDITOR
|
2025-09-04 11:43:35 +08:00
|
|
|
if(string.IsNullOrEmpty(domain))
|
2025-05-23 18:26:47 +08:00
|
|
|
domain = "Main";
|
2025-09-02 14:15:18 +08:00
|
|
|
#elif UNITY_EDITOR
|
2025-09-04 11:43:35 +08:00
|
|
|
// var immersalSDK = FindObjectOfType<ImmersalSDK>();
|
|
|
|
|
// immersalSDK.onPoseFound.Invoke();
|
2025-05-23 18:26:47 +08:00
|
|
|
#endif
|
2025-09-02 14:15:18 +08:00
|
|
|
|
2025-05-30 14:50:46 +08:00
|
|
|
AppConfig.PackageDomainName = domain;
|
2025-05-23 18:26:47 +08:00
|
|
|
_fsmSystem.SetCurState(nameof(ResStartState));
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-04 11:43:35 +08:00
|
|
|
private void Update()
|
|
|
|
|
{
|
|
|
|
|
if (_fsmSystem.CurState != null)
|
|
|
|
|
_fsmSystem.CurState.OnUpdate();
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-23 18:26:47 +08:00
|
|
|
public void OpenDomain()
|
|
|
|
|
{
|
2025-05-30 14:50:46 +08:00
|
|
|
AppConfig.PackageDomainName = domain;
|
2025-05-23 18:26:47 +08:00
|
|
|
_fsmSystem.SetCurState(nameof(ResStartState));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OpenDomain(string domain, OpenDomainType openDomainType)
|
|
|
|
|
{
|
2025-09-04 11:43:35 +08:00
|
|
|
this.domain = domain;
|
2025-05-23 18:26:47 +08:00
|
|
|
_fsmSystem.SetOpenDomainType(openDomainType);
|
2025-10-24 11:11:59 +08:00
|
|
|
if (this.domain != AppConfig.PackageDomainName)
|
|
|
|
|
{
|
|
|
|
|
AppConfig.PackageDomainName = domain;
|
|
|
|
|
_fsmSystem.SetCurState(nameof(ResStartState));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
}
|
2025-05-23 18:26:47 +08:00
|
|
|
}
|
2025-09-10 15:52:11 +08:00
|
|
|
|
|
|
|
|
public void OpenDomain(string domain, TransformCtor transformCtor)
|
|
|
|
|
{
|
|
|
|
|
this.domain = domain;
|
|
|
|
|
_fsmSystem.SetOpenDomainType(OpenDomainType.ImageTracked);
|
|
|
|
|
_fsmSystem.SetTransformCtor(transformCtor);
|
2025-10-24 11:11:59 +08:00
|
|
|
if (this.domain != AppConfig.PackageDomainName)
|
|
|
|
|
{
|
|
|
|
|
AppConfig.PackageDomainName = domain;
|
|
|
|
|
_fsmSystem.SetCurState(nameof(ResStartState));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
}
|
2025-09-10 15:52:11 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OpenDomain(string domain, Transform transform)
|
2025-09-10 10:08:35 +08:00
|
|
|
{
|
|
|
|
|
this.domain = domain;
|
|
|
|
|
_fsmSystem.SetOpenDomainType(OpenDomainType.ImageTracked);
|
2025-09-10 15:52:11 +08:00
|
|
|
_fsmSystem.SetTransformCtor(transform);
|
2025-10-24 11:11:59 +08:00
|
|
|
if (this.domain != AppConfig.PackageDomainName)
|
|
|
|
|
{
|
|
|
|
|
AppConfig.PackageDomainName = domain;
|
|
|
|
|
_fsmSystem.SetCurState(nameof(ResStartState));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
}
|
2025-09-10 10:08:35 +08:00
|
|
|
}
|
2025-05-23 18:26:47 +08:00
|
|
|
|
|
|
|
|
public void CloseDomain()
|
|
|
|
|
{
|
2025-09-02 14:15:18 +08:00
|
|
|
_fsmSystem.SetCurState(nameof(DefaultStateAsync));
|
2025-05-23 18:26:47 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-09-04 11:43:35 +08:00
|
|
|
/// 打开的项目类型
|
|
|
|
|
/// DEFAULT:默认打开方式
|
|
|
|
|
/// VIOICE:语音打开方式
|
2025-05-23 18:26:47 +08:00
|
|
|
/// </summary>
|
|
|
|
|
public enum OpenDomainType
|
|
|
|
|
{
|
2025-09-04 11:43:35 +08:00
|
|
|
Editor,
|
2025-09-02 14:15:18 +08:00
|
|
|
PointCloud,
|
|
|
|
|
VIOICE,
|
2025-09-04 11:43:35 +08:00
|
|
|
ImageTracked
|
2025-05-23 18:26:47 +08:00
|
|
|
}
|
|
|
|
|
}
|