private static void CreateResAsset(bool isLoadAssetBundle) { #if UNITY_EDITOR if (!Directory.Exists(_ResKitConfigPath)) { Directory.CreateDirectory(_ResKitConfigPath); } string fileName = _ResKitConfigPath + typeof(ResKitConfig).Name + ".asset"; if (File.Exists(fileName)) { ResKitConfig temp = Resources.Load <ResKitConfig>(typeof(ResKitConfig).Name); if (temp) { temp.LoadResMode = isLoadAssetBundle ? ResKit.LoadResMode.AssetBundle : ResKit.LoadResMode.Resource; return; } else { File.Delete(fileName); } } ResKitConfig config = ScriptableObject.CreateInstance <ResKitConfig>(); config.LoadResMode = isLoadAssetBundle ? ResKit.LoadResMode.AssetBundle : ResKit.LoadResMode.Resource; UnityEditor.AssetDatabase.CreateAsset(config, fileName); UnityEditor.AssetDatabase.SaveAssets(); UnityEditor.AssetDatabase.Refresh(); #endif }
private static bool GetResAsset() { if (!Directory.Exists(_ResKitConfigPath)) { return(false); } string fileName = _ResKitConfigPath + typeof(ResKitConfig).Name + ".asset"; if (!File.Exists(fileName)) { return(false); } ResKitConfig config = Resources.Load <ResKitConfig>(typeof(ResKitConfig).Name); if (config) { return((int)config.LoadResMode == 1); } return(false); }
private static void UpdateResGroup() { var dirs = Directory.GetDirectories(GroupPath); var dataGroups = new List <ResGroupConfig>(); foreach (var s in dirs) { var di = new DirectoryInfo(s); dataGroups.Add(new ResGroupConfig() { GroupName = di.Name, DefaultLoad = false, SimulateLoad = true }); } var resConfig = ResKitConfig.GetConfig(); foreach (var resGroup in resConfig.ResGroups) { var name = resGroup.GroupName; var startStr = name.Substring(0, name.LastIndexOf("_", StringComparison.Ordinal)); dataGroups.ForEach(item => { if (item.GroupName.StartsWith(startStr)) { item.DefaultLoad = resGroup.DefaultLoad; item.SimulateLoad = resGroup.SimulateLoad; } }); } resConfig.ResGroups = dataGroups; EditorUtility.SetDirty(resConfig); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
public static void Build() { LoadResMode mode = LoadResMode.Resource; ResKitConfig config = Resources.Load <ResKitConfig>(typeof(ResKitConfig).Name); if (config) { if (config.LoadResMode == LoadResMode.AssetBundle) { mode = LoadResMode.AssetBundle; } } if (mode == LoadResMode.AssetBundle) { BuildAssetBundle.BuildAB(); Copy(_ABPath, ResKitConst.AssetBundlePath); } if (!Directory.Exists(_BuildPath)) { Directory.CreateDirectory(_BuildPath); } string savePath = ""; switch (EditorUserBuildSettings.activeBuildTarget) { case BuildTarget.Android: savePath = _BuildPath + _AppName + string.Format("_{0:yyyy-MM-dd-HH-mm}.apk", System.DateTime.Now); break; case BuildTarget.iOS: savePath = _BuildPath + _AppName + string.Format("_{0:yyyy-MM-dd-HH-mm}", System.DateTime.Now); break; case BuildTarget.StandaloneWindows: case BuildTarget.StandaloneWindows64: savePath = _BuildPath + _AppName + string.Format("_{0:yyyy-MM-dd-HH-mm}/{1}.exe", System.DateTime.Now, _AppName); break; default: savePath = _BuildPath + _AppName + "_" + string.Format("{0:yyyy-MM-dd-HH-mm}", System.DateTime.Now); break; } BuildPipeline.BuildPlayer(FindEnableEditorScenes(), savePath, EditorUserBuildSettings.activeBuildTarget, BuildOptions.None); if (mode == LoadResMode.AssetBundle) { DeleteDir(Application.streamingAssetsPath); } Debug.Log("执行打包完成 " + savePath); #if UNITY_EDITOR_WIN string path = _BuildPath.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe", path); #endif }