CacheData.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using UnityEngine;
  6. namespace YooAsset
  7. {
  8. [Serializable]
  9. internal sealed class CacheData
  10. {
  11. /// <summary>
  12. /// 缓存的APP内置版本
  13. /// </summary>
  14. public string CacheAppVersion = string.Empty;
  15. /// <summary>
  16. /// 读取缓存文件
  17. /// 注意:如果文件不存在则创建新的缓存文件
  18. /// </summary>
  19. public static CacheData LoadCache()
  20. {
  21. string filePath = GetCacheDataFilePath();
  22. if (File.Exists(filePath))
  23. {
  24. string jsonData = FileUtility.ReadFile(filePath);
  25. var cacheData = JsonUtility.FromJson<CacheData>(jsonData);
  26. YooLogger.Log($"Load cache data : {cacheData.CacheAppVersion}");
  27. return cacheData;
  28. }
  29. else
  30. {
  31. YooLogger.Log($"Create cache data : {Application.version}");
  32. CacheData cacheData = new CacheData();
  33. cacheData.CacheAppVersion = Application.version;
  34. string jsonData = JsonUtility.ToJson(cacheData);
  35. FileUtility.CreateFile(filePath, jsonData);
  36. return cacheData;
  37. }
  38. }
  39. /// <summary>
  40. /// 更新缓存文件
  41. /// </summary>
  42. public static void UpdateCache()
  43. {
  44. YooLogger.Log($"Update cache data to disk : {Application.version}");
  45. CacheData cacheData = new CacheData();
  46. cacheData.CacheAppVersion = Application.version;
  47. string filePath = GetCacheDataFilePath();
  48. string jsonData = JsonUtility.ToJson(cacheData);
  49. FileUtility.CreateFile(filePath, jsonData);
  50. }
  51. private static string GetCacheDataFilePath()
  52. {
  53. return PathHelper.MakePersistentLoadPath("CacheData.bytes");
  54. }
  55. }
  56. }