using UnityEngine;
|
using System;
|
using System.IO;
|
using vnxbqy.UI;
|
|
|
public class ResourcesPath : Singleton<ResourcesPath>
|
{
|
public const string AssetDependentFileBundleName =
|
#if UNITY_ANDROID
|
"android";
|
#elif UNITY_IOS
|
"ios";
|
#else
|
"standalone";
|
#endif
|
|
public const string windowFileBundleName = "ui/window";
|
public const string uiprefabFileBundleName = "ui/prefab";
|
|
public readonly static string ResourcesOutPath = Application.dataPath + "/ResourcesOut/";
|
public const string ResourcesOutAssetPath = "Assets/ResourcesOut/";
|
public const string AssetDependentFileAssetName = "AssetBundleManifest";
|
public const string ABExtention = ".unity3d";
|
|
public readonly string StreamingAssetPath;
|
public readonly string ExternalStorePath;
|
|
#region 具体asset资源读取路径
|
|
public static readonly string MOB_FOLDER_NAME = "gmodels/";
|
public static readonly string MOB_SUFFIX = "prefab_race_";
|
|
public static readonly string EFFECT_Folder_Name = "effect/";
|
|
public static readonly string UI_SPRITE_SUFFIX = "UI/Sprite";
|
public static readonly string UI_WINDOW_SUFFIX = "UI/Window";
|
public static readonly string UI_PRIORITYWINDOW_SUFFIX = "UI/PriorityWindow";
|
public static readonly string UI_FONT_SUFFIX = "UI/Font";
|
public static readonly string UI_PREFAB_SUFFIX = "UI/Prefab";
|
|
public static readonly string CONFIG_FODLER = ResourcesOutPath + "refdata/Config";
|
|
public static readonly string AUDIO_SUFFIX = "Audio/";
|
public static readonly string VIDEO_SUFFIX = "Video/";
|
|
|
#endregion
|
|
public void Init()
|
{
|
}
|
|
public ResourcesPath()
|
{
|
#if UNITY_ANDROID
|
StreamingAssetPath = Application.streamingAssetsPath + "/android/";
|
#elif UNITY_IOS
|
StreamingAssetPath = Application.streamingAssetsPath + "/ios/";
|
#else
|
StreamingAssetPath = Application.streamingAssetsPath + "/standalone/";
|
#endif
|
|
if (!Application.isEditor)
|
{
|
switch (Application.platform)
|
{
|
case RuntimePlatform.WindowsPlayer:
|
ExternalStorePath = Path.GetDirectoryName(Application.streamingAssetsPath) + "/ExternalAssets/";
|
break;
|
default:
|
ExternalStorePath = Application.persistentDataPath + "/";
|
break;
|
}
|
}
|
else
|
{
|
ExternalStorePath = Application.persistentDataPath + "/";
|
}
|
|
DebugEx.Log("Stream Path: " + StreamingAssetPath);
|
DebugEx.Log("External Path: " + ExternalStorePath);
|
}
|
|
public void CleanCache()
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
|
Language.Get("CleanCache2"), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
try
|
{
|
// 获取persistentDataPath下的所有文件和文件夹
|
string[] files = Directory.GetFiles(ExternalStorePath);
|
string[] dirs = Directory.GetDirectories(ExternalStorePath);
|
|
// 删除所有文件
|
foreach (string file in files)
|
{
|
if (file.Contains("config"))
|
{
|
continue;
|
}
|
File.Delete(file);
|
}
|
|
|
// 递归删除所有文件夹
|
foreach (string dir in dirs)
|
{
|
if (dir.Contains("config"))
|
{
|
continue;
|
}
|
Directory.Delete(dir, true);
|
}
|
|
files = Directory.GetFiles(ExternalStorePath + "/config");
|
foreach (string file in files)
|
{
|
bool isDelete = true;
|
foreach (string filename in ConfigInitiator.builtinConfig)
|
{
|
if (file.Contains(filename))
|
{
|
isDelete = false;
|
break;
|
}
|
}
|
|
if (isDelete)
|
File.Delete(file);
|
}
|
|
|
}
|
catch (System.Exception e)
|
{
|
Debug.LogError("Failed to clean persistent data: " + e.Message);
|
}
|
finally
|
{
|
Clock.AlarmAfter(0.1f, () =>
|
{
|
Application.Quit();
|
});
|
Debug.Log("Persistent data cleaned.");
|
}
|
|
}
|
});
|
|
|
}
|
}
|