mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-30 13:38:46 +00:00
update space shooter
This commit is contained in:
@@ -19,7 +19,7 @@ public class Boot : MonoBehaviour
|
|||||||
Application.runInBackground = true;
|
Application.runInBackground = true;
|
||||||
DontDestroyOnLoad(this.gameObject);
|
DontDestroyOnLoad(this.gameObject);
|
||||||
}
|
}
|
||||||
IEnumerator Start()
|
void Start()
|
||||||
{
|
{
|
||||||
// 游戏管理器
|
// 游戏管理器
|
||||||
GameManager.Instance.Behaviour = this;
|
GameManager.Instance.Behaviour = this;
|
||||||
@@ -34,16 +34,12 @@ public class Boot : MonoBehaviour
|
|||||||
var go = Resources.Load<GameObject>("PatchWindow");
|
var go = Resources.Load<GameObject>("PatchWindow");
|
||||||
GameObject.Instantiate(go);
|
GameObject.Instantiate(go);
|
||||||
|
|
||||||
// 开始补丁更新流程
|
// 补丁更新流程
|
||||||
var operation = new PatchOperation("DefaultPackage", PlayMode);
|
PatchManager.Create("DefaultPackage", PlayMode);
|
||||||
YooAssets.StartOperation(operation);
|
PatchManager.Start();
|
||||||
yield return operation;
|
}
|
||||||
|
private void Update()
|
||||||
// 设置默认的资源包
|
{
|
||||||
var gamePackage = YooAssets.GetPackage("DefaultPackage");
|
PatchManager.Update();
|
||||||
YooAssets.SetDefaultPackage(gamePackage);
|
|
||||||
|
|
||||||
// 切换到主页面场景
|
|
||||||
SceneEventDefine.ChangeToHomeScene.SendEventMessage();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,19 +2,23 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UniFramework.Machine;
|
using UniFramework.Machine;
|
||||||
|
using YooAsset;
|
||||||
|
|
||||||
internal class FsmStartGame : IStateNode
|
internal class FsmStartGame : IStateNode
|
||||||
{
|
{
|
||||||
private PatchOperation _owner;
|
|
||||||
|
|
||||||
void IStateNode.OnCreate(StateMachine machine)
|
void IStateNode.OnCreate(StateMachine machine)
|
||||||
{
|
{
|
||||||
_owner = machine.Owner as PatchOperation;
|
|
||||||
}
|
}
|
||||||
void IStateNode.OnEnter()
|
void IStateNode.OnEnter()
|
||||||
{
|
{
|
||||||
PatchEventDefine.PatchStepsChange.SendEventMessage("开始游戏!");
|
PatchEventDefine.PatchStepsChange.SendEventMessage("开始游戏!");
|
||||||
_owner.SetFinish();
|
|
||||||
|
// 设置默认的资源包
|
||||||
|
var gamePackage = YooAssets.GetPackage("DefaultPackage");
|
||||||
|
YooAssets.SetDefaultPackage(gamePackage);
|
||||||
|
|
||||||
|
// 切换到主页面场景
|
||||||
|
SceneEventDefine.ChangeToHomeScene.SendEventMessage();
|
||||||
}
|
}
|
||||||
void IStateNode.OnUpdate()
|
void IStateNode.OnUpdate()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,24 +3,13 @@ using UniFramework.Machine;
|
|||||||
using UniFramework.Event;
|
using UniFramework.Event;
|
||||||
using YooAsset;
|
using YooAsset;
|
||||||
|
|
||||||
public class PatchOperation : GameAsyncOperation
|
public static class PatchManager
|
||||||
{
|
{
|
||||||
private enum ESteps
|
private static readonly EventGroup _eventGroup = new EventGroup();
|
||||||
|
private static StateMachine _machine;
|
||||||
|
|
||||||
|
public static void Create(string packageName, EPlayMode playMode)
|
||||||
{
|
{
|
||||||
None,
|
|
||||||
Update,
|
|
||||||
Done,
|
|
||||||
}
|
|
||||||
|
|
||||||
private readonly EventGroup _eventGroup = new EventGroup();
|
|
||||||
private readonly StateMachine _machine;
|
|
||||||
private readonly string _packageName;
|
|
||||||
private ESteps _steps = ESteps.None;
|
|
||||||
|
|
||||||
public PatchOperation(string packageName, EPlayMode playMode)
|
|
||||||
{
|
|
||||||
_packageName = packageName;
|
|
||||||
|
|
||||||
// 注册监听事件
|
// 注册监听事件
|
||||||
_eventGroup.AddListener<UserEventDefine.UserTryInitialize>(OnHandleEventMessage);
|
_eventGroup.AddListener<UserEventDefine.UserTryInitialize>(OnHandleEventMessage);
|
||||||
_eventGroup.AddListener<UserEventDefine.UserBeginDownloadWebFiles>(OnHandleEventMessage);
|
_eventGroup.AddListener<UserEventDefine.UserBeginDownloadWebFiles>(OnHandleEventMessage);
|
||||||
@@ -29,7 +18,7 @@ public class PatchOperation : GameAsyncOperation
|
|||||||
_eventGroup.AddListener<UserEventDefine.UserTryDownloadWebFiles>(OnHandleEventMessage);
|
_eventGroup.AddListener<UserEventDefine.UserTryDownloadWebFiles>(OnHandleEventMessage);
|
||||||
|
|
||||||
// 创建状态机
|
// 创建状态机
|
||||||
_machine = new StateMachine(this);
|
_machine = new StateMachine(null);
|
||||||
_machine.AddNode<FsmInitializePackage>();
|
_machine.AddNode<FsmInitializePackage>();
|
||||||
_machine.AddNode<FsmRequestPackageVersion>();
|
_machine.AddNode<FsmRequestPackageVersion>();
|
||||||
_machine.AddNode<FsmUpdatePackageManifest>();
|
_machine.AddNode<FsmUpdatePackageManifest>();
|
||||||
@@ -42,37 +31,19 @@ public class PatchOperation : GameAsyncOperation
|
|||||||
_machine.SetBlackboardValue("PackageName", packageName);
|
_machine.SetBlackboardValue("PackageName", packageName);
|
||||||
_machine.SetBlackboardValue("PlayMode", playMode);
|
_machine.SetBlackboardValue("PlayMode", playMode);
|
||||||
}
|
}
|
||||||
protected override void OnStart()
|
public static void Start()
|
||||||
{
|
{
|
||||||
_steps = ESteps.Update;
|
|
||||||
_machine.Run<FsmInitializePackage>();
|
_machine.Run<FsmInitializePackage>();
|
||||||
}
|
}
|
||||||
protected override void OnUpdate()
|
public static void Update()
|
||||||
{
|
|
||||||
if (_steps == ESteps.None || _steps == ESteps.Done)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (_steps == ESteps.Update)
|
|
||||||
{
|
{
|
||||||
_machine.Update();
|
_machine.Update();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
protected override void OnAbort()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetFinish()
|
|
||||||
{
|
|
||||||
_steps = ESteps.Done;
|
|
||||||
_eventGroup.RemoveAllListener();
|
|
||||||
Status = EOperationStatus.Succeed;
|
|
||||||
Debug.Log($"Package {_packageName} patch done !");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 接收事件
|
/// 接收事件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void OnHandleEventMessage(IEventMessage message)
|
private static void OnHandleEventMessage(IEventMessage message)
|
||||||
{
|
{
|
||||||
if (message is UserEventDefine.UserTryInitialize)
|
if (message is UserEventDefine.UserTryInitialize)
|
||||||
{
|
{
|
||||||
Reference in New Issue
Block a user