// Convenience method for packing everything according to // PackageExportData objects public static void PackageEverything() { var guids = AssetDatabase.FindAssets("t:PackageExportData"); if (guids.Length == 0) { throw new System.Exception("PackageExportData doesn't exist. Create at least one using Uplift -> Create Export Spec."); } Debug.LogFormat("{0} Package Export Specification(s) found. Preparing for export.", guids.Length); for (int i = 0; i < guids.Length; i++) { string packageExportPath = AssetDatabase.GUIDToAssetPath(guids[i]); #if UNITY_5_6_OR_NEWER PackageExportData packageExportData = AssetDatabase.LoadAssetAtPath <PackageExportData>(packageExportPath); #else PackageExportData packageExportData = (PackageExportData)AssetDatabase.LoadAssetAtPath(packageExportPath, typeof(PackageExportData)); #endif Debug.LogFormat("Export {0}/{1} using {2}", i + 1, guids.Length, packageExportPath); // Preparing exporter instance Exporter exporter = new Exporter(); // Checking which defaults had been overriden packageExportData.SetOrCheckOverridenDefaults(GetDefaultExportData()); // Setting exporter spec exporter.SetExportSpec(packageExportData); // Export of set package exporter.Export(); } }
public void OnEnable() { packageExportData = (PackageExportData)target; if (packageExportData.pathsToExport == null) { packageExportData.pathsToExport = new string[0]; } }
public static PackageExportData GetDefaultExportData() { PackageExportData defaultExportData = ScriptableObject.CreateInstance <PackageExportData>(); defaultExportData.packageName = PlayerSettings.productName; defaultExportData.packageVersion = PlayerSettings.bundleVersion; defaultExportData.license = "undefined"; return(defaultExportData); }
public void SetOrCheckOverridenDefaults(PackageExportData defaults) { string[] overridableDefaults = { "packageName", "packageVersion", "license", "targetDir" }; foreach (var fieldName in overridableDefaults) { System.Reflection.FieldInfo field = this.GetType().GetField(fieldName); // I know those are strings, so... var defaultValue = field.GetValue(defaults) as string; var currentValue = field.GetValue(this) as string; if (string.IsNullOrEmpty(currentValue) && currentValue != defaultValue) { Debug.LogFormat("NOTE: using default for Package Export Specification {0}: {1}", fieldName, defaultValue); field.SetValue(this, defaultValue); } } }
public void SetExportSpec(PackageExportData exportSpec) { this.exportSpec = exportSpec; }