ProcedureInitResources.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 Jiang Yin. All rights reserved.
  4. // Homepage: https://gameframework.cn/
  5. // Feedback: mailto:ellan@gameframework.cn
  6. //------------------------------------------------------------
  7. using UnityGameFramework.Runtime;
  8. using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
  9. namespace MetaClient
  10. {
  11. public class ProcedureInitResources : ProcedureBase
  12. {
  13. private bool m_InitResourcesComplete = false;
  14. public override bool UseNativeDialog
  15. {
  16. get
  17. {
  18. return true;
  19. }
  20. }
  21. protected override void OnEnter(ProcedureOwner procedureOwner)
  22. {
  23. base.OnEnter(procedureOwner);
  24. m_InitResourcesComplete = false;
  25. // 注意:使用单机模式并初始化资源前,需要先构建 AssetBundle 并复制到 StreamingAssets 中,否则会产生 HTTP 404 错误
  26. GameEntry.Resource.InitResources(OnInitResourcesComplete);
  27. }
  28. protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
  29. {
  30. base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
  31. if (!m_InitResourcesComplete)
  32. {
  33. // 初始化资源未完成则继续等待
  34. return;
  35. }
  36. ChangeState<ProcedurePreload>(procedureOwner);
  37. }
  38. private void OnInitResourcesComplete()
  39. {
  40. m_InitResourcesComplete = true;
  41. Log.Info("Init resources complete.");
  42. }
  43. }
  44. }