123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using XGame.Framework.Define;
- using System.IO;
- using UnityEngine;
- namespace XGame.Framework.Utils
- {
- public static class FileUtils
- {
- //public static string PlatformName
- //{
- // get
- // {
- // switch (Application.platform)
- // {
- // case RuntimePlatform.OSXEditor:
- // case RuntimePlatform.OSXPlayer:
- // return "Mac";
- // case RuntimePlatform.IPhonePlayer:
- // return "iOS";
- // case RuntimePlatform.Android:
- // return "Android";
- // //case RuntimePlatform.WindowsEditor:
- // //case RuntimePlatform.WindowsPlayer:
- // default:
- // return "Windows";
- // }
- // }
- //}
- /// <summary>
- /// 获取游戏包里的文件路径
- /// </summary>
- /// <param name="fileName"></param>
- /// <param name="includeUpdate"></param>
- /// <returns></returns>
- public static string GetFilePath(string fileName, bool includeUpdate = true)
- {
- //先取热更新的资源
- //var path = Path.Combine(UpdatePath, fileName);
- if (TryGetFilePath(fileName, includeUpdate, out var path))
- {
- return path;
- }
- //找不到再从内置资源里取
- return $"{PathDefine.WorkPath}/{fileName}";
- }
- /// <summary>
- /// 获取游戏包里的文件URL
- /// </summary>
- /// <param name="fileName">文件名</param>
- /// <param name="includeUpdate"></param>
- /// <returns></returns>
- public static string GetFileUrl(string fileName, bool includeUpdate = true)
- {
- //先取热更新的资源
- //string path = Path.Combine(UpdatePath, fileName);
- if (TryGetFilePath(fileName, includeUpdate, out var path))
- {
- return "file://" + path;
- }
- //找不到再从内置资源里取
- if (Application.platform == RuntimePlatform.Android)
- return $"jar:file://{PathDefine.WorkPath}/{fileName}";
- return $"file://{PathDefine.WorkPath}/{fileName}";
- }
- private static bool TryGetFilePath(string fileName, bool includeUpdate, out string path)
- {
- if (includeUpdate)
- {
- //先取热更新的资源
- path = $"{PathDefine.UpdatePath}/{fileName}";
- if (System.IO.File.Exists(path))
- {
- return true;
- }
- }
- else
- {
- path = string.Empty;
- }
- #if UNITY_EDITOR
- //编辑器下多做一步平台判断
- path = $"{PathDefine.WorkPath}/{fileName}";
- if (System.IO.File.Exists(path))
- {
- return true;
- }
- var platform = PlatformType.Windows;
- #if UNITY_ANDROID
- platform = PlatformType.Android;
- #elif UNITY_IOS
- platform = PlatformType.iOS;
- #elif UNITY_WEIXINMINIGAME
- platform = PlatformType.Weixin;
- #elif UNITY_WEBGL
- platform = PlatformType.WebGL;
- #endif
- path = $"{PathDefine.WorkPath}/{platform}/{fileName}";
- if (System.IO.File.Exists(path))
- {
- return true;
- }
- #endif
- return false;
- }
- public static string GetAssetBundlePath(string bundleName)
- {
- return GetFilePath(Path.Combine("AssetBundles", bundleName));
- }
- }
- }
|