【m】框架大更新
This commit is contained in:
@@ -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,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user