【m】框架大更新

This commit is contained in:
2025-10-31 11:18:23 +08:00
parent ae6e7c804b
commit 8e1d52ddbf
1883 changed files with 213934 additions and 640 deletions

View File

@@ -1,3 +1,4 @@
using System.Threading.Tasks;
using UnityEngine;
namespace Stary.Evo
@@ -5,9 +6,12 @@ namespace Stary.Evo
public class HybridClREntrance : MonoBehaviour
{
public static HybridClREntrance Global;
public StageType stage;
public string domain;
private FsmLoadSystem _fsmSystem;
private FsmLoadSystem _devLoadSystem;
private FsmLoadSystem _originalityLoadSystem;
/// <summary>
/// 即将加载的domain场景
@@ -27,13 +31,13 @@ namespace Stary.Evo
return;
}
_fsmSystem = new FsmLoadSystem();
_devLoadSystem = 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));
_devLoadSystem.AddState(new ResStartState(_devLoadSystem));
_devLoadSystem.AddState(new ResEditorSimulateState(_devLoadSystem));
_devLoadSystem.AddState(new ResUpdateLocalState(_devLoadSystem));
_devLoadSystem.AddState(new HotFixState(_devLoadSystem));
_devLoadSystem.AddState(new LoadResState(_devLoadSystem));
//_fsmSystem.AddState(new LoadResMainState(_fsmSystem));
}
@@ -46,70 +50,99 @@ namespace Stary.Evo
// var immersalSDK = FindObjectOfType<ImmersalSDK>();
// immersalSDK.onPoseFound.Invoke();
#endif
if (stage == StageType.Developer)
{
AppConfig.PackageDomainName = domain;
}
else if (stage == StageType.Originality)
{
AppConfig.PackageDomainName = "Main";
}
AppConfig.PackageDomainName = domain;
_fsmSystem.SetCurState(nameof(ResStartState));
_devLoadSystem.SetCurState(nameof(ResStartState));
}
private void Update()
{
if (_fsmSystem.CurState != null)
_fsmSystem.CurState.OnUpdate();
if (_devLoadSystem.CurState != null)
_devLoadSystem.CurState.OnUpdate();
}
public void OpenDomain()
public async Task OpenDomain()
{
AppConfig.PackageDomainName = domain;
_fsmSystem.SetCurState(nameof(ResStartState));
if (stage == StageType.Developer)
{
await _devLoadSystem.SetCurState(nameof(ResStartState));
}
else if (stage == StageType.Originality)
{
if (_originalityLoadSystem == null)
{
_originalityLoadSystem = new FsmLoadSystem();
_originalityLoadSystem.AddState(new ArtResStartState(_originalityLoadSystem));
_originalityLoadSystem.AddState(new ArtResUpdateLocalState(_originalityLoadSystem));
_originalityLoadSystem.AddState(new ArtResEditorSimulateState(_originalityLoadSystem));
}
await _originalityLoadSystem.SetCurState(nameof(ArtResStartState));
}
}
public void OpenDomain(string domain, OpenDomainType openDomainType)
{
this.domain = domain;
_fsmSystem.SetOpenDomainType(openDomainType);
_devLoadSystem.SetOpenDomainType(openDomainType);
if (this.domain != AppConfig.PackageDomainName)
{
AppConfig.PackageDomainName = domain;
_fsmSystem.SetCurState(nameof(ResStartState));
_devLoadSystem.SetCurState(nameof(ResStartState));
}
else
{
Debug.Log($"domain:{domain} 已打开, 请勿重复打开");
}
}
public void OpenDomain(string domain, TransformCtor transformCtor)
{
this.domain = domain;
_fsmSystem.SetOpenDomainType(OpenDomainType.ImageTracked);
_fsmSystem.SetTransformCtor(transformCtor);
_devLoadSystem.SetOpenDomainType(OpenDomainType.ImageTracked);
_devLoadSystem.SetTransformCtor(transformCtor);
if (this.domain != AppConfig.PackageDomainName)
{
AppConfig.PackageDomainName = domain;
_fsmSystem.SetCurState(nameof(ResStartState));
_devLoadSystem.SetCurState(nameof(ResStartState));
}
else
{
Debug.Log($"domain:{domain} 已打开, 请勿重复打开");
}
}
public void OpenDomain(string domain, Transform transform)
{
this.domain = domain;
_fsmSystem.SetOpenDomainType(OpenDomainType.ImageTracked);
_fsmSystem.SetTransformCtor(transform);
_devLoadSystem.SetOpenDomainType(OpenDomainType.ImageTracked);
_devLoadSystem.SetTransformCtor(transform);
if (this.domain != AppConfig.PackageDomainName)
{
AppConfig.PackageDomainName = domain;
_fsmSystem.SetCurState(nameof(ResStartState));
_devLoadSystem.SetCurState(nameof(ResStartState));
}
else
{
Debug.Log($"domain:{domain} 已打开, 请勿重复打开");
}
}
public void CloseDomain()
{
_fsmSystem.SetCurState(nameof(DefaultStateAsync));
if (_devLoadSystem != null)
_devLoadSystem.SetCurState(nameof(DefaultStateAsync));
if (_originalityLoadSystem != null)
_originalityLoadSystem.SetCurState(nameof(DefaultStateAsync));
}
}
@@ -125,4 +158,17 @@ namespace Stary.Evo
VIOICE,
ImageTracked
}
public enum StageType
{
/// <summary>
/// 创意阶段
/// </summary>
Originality,
/// <summary>
/// 开发者阶段
/// </summary>
Developer,
}
}