ProcedureCheckResources.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using UnityGameFramework.Runtime;
  2. using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
  3. namespace MetaClient
  4. {
  5. public class ProcedureCheckResources : ProcedureBase
  6. {
  7. private bool m_CheckResourcesComplete = false;
  8. private bool m_NeedUpdateResources = false;
  9. private int m_UpdateResourceCount = 0;
  10. private long m_UpdateResourceTotalCompressedLength = 0L;
  11. public override bool UseNativeDialog
  12. {
  13. get
  14. {
  15. return true;
  16. }
  17. }
  18. protected override void OnEnter(ProcedureOwner procedureOwner)
  19. {
  20. base.OnEnter(procedureOwner);
  21. m_CheckResourcesComplete = false;
  22. m_NeedUpdateResources = false;
  23. m_UpdateResourceCount = 0;
  24. m_UpdateResourceTotalCompressedLength = 0L;
  25. GameEntry.Resource.CheckResources(OnCheckResourcesComplete);
  26. }
  27. protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
  28. {
  29. base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
  30. if (!m_CheckResourcesComplete)
  31. {
  32. return;
  33. }
  34. if (m_NeedUpdateResources)
  35. {
  36. procedureOwner.SetData<VarInt32>("UpdateResourceCount", m_UpdateResourceCount);
  37. procedureOwner.SetData<VarInt64>("UpdateResourceTotalCompressedLength", m_UpdateResourceTotalCompressedLength);
  38. ChangeState<ProcedureUpdateResources>(procedureOwner);
  39. }
  40. else
  41. {
  42. ChangeState<ProcedurePreload>(procedureOwner);
  43. }
  44. }
  45. private void OnCheckResourcesComplete(int movedCount, int removedCount, int updateCount, long updateTotalLength, long updateTotalCompressedLength)
  46. {
  47. m_CheckResourcesComplete = true;
  48. m_NeedUpdateResources = updateCount > 0;
  49. m_UpdateResourceCount = updateCount;
  50. m_UpdateResourceTotalCompressedLength = updateTotalCompressedLength;
  51. Log.Info("Check resources complete, '{0}' resources need to update, compressed length is '{1}', uncompressed length is '{2}'.", updateCount.ToString(), updateTotalCompressedLength.ToString(), updateTotalLength.ToString());
  52. }
  53. }
  54. }