private static SerializableAssetPackConfig Serialize(AssetDeliveryConfig assetDeliveryConfig) { var config = new SerializableAssetPackConfig { DefaultTextureCompressionFormat = assetDeliveryConfig.DefaultTextureCompressionFormat, splitBaseModuleAssets = assetDeliveryConfig.SplitBaseModuleAssets }; foreach (var assetPack in assetDeliveryConfig.AssetBundlePacks.Values) { config.assetBundles.Add(new SerializableMultiTargetingAssetBundle { name = assetPack.Name, DeliveryMode = assetPack.DeliveryMode, assetBundles = assetPack.Variants.Select(pack => new SerializableAssetBundle { path = pack.Value.Path, TextureCompressionFormat = pack.Key }).ToList() }); } config.assetPacks = assetDeliveryConfig.rawAssetsPacks; return(config); }
private static AssetDeliveryConfig Deserialize(SerializableAssetPackConfig config) { var assetDeliveryConfig = new AssetDeliveryConfig { DefaultTextureCompressionFormat = config.DefaultTextureCompressionFormat, SplitBaseModuleAssets = config.splitBaseModuleAssets }; var paths = new HashSet <string>(); foreach (var multiTargetingAssetBundle in config.assetBundles) { paths.UnionWith( multiTargetingAssetBundle.assetBundles.Select(item => Path.GetDirectoryName(item.path))); assetDeliveryConfig.AssetBundlePacks.Add(multiTargetingAssetBundle.name, new AssetBundlePack(multiTargetingAssetBundle.name, multiTargetingAssetBundle.DeliveryMode)); } paths.ToList().ForEach(path => assetDeliveryConfig.Folders.Add(path, new AssetBundleFolder(path))); assetDeliveryConfig.rawAssetsPacks = config.assetPacks; return(assetDeliveryConfig); }
/// <summary> /// Returns an AssetDeliveryConfig loaded from disk. /// </summary> public static AssetDeliveryConfig LoadConfig() { Debug.LogFormat("Loading {0}", SerializationHelper.ConfigurationFilePath); SerializableAssetPackConfig config; if (File.Exists(SerializationHelper.ConfigurationFilePath)) { var jsonText = File.ReadAllText(SerializationHelper.ConfigurationFilePath); config = JsonUtility.FromJson <SerializableAssetPackConfig>(jsonText); } else { config = new SerializableAssetPackConfig(); } return(Deserialize(config)); }