/// <summary> /// Call with command-line options to build assetbundles. /// </summary> public static void BuildAssetbundles() { string settingPath = "Assets/AssetBundleManager/Editor/AssetBundleBuildSetting.asset"; AssetBundles.BundleBuilder builder = (AssetBundles.BundleBuilder)AssetDatabase.LoadAssetAtPath(settingPath, typeof(AssetBundles.BundleBuilder)); if (builder != null) { builder.Build(); } else { EditorUtility.DisplayDialog("AssetBundle Build Error", "Failed to load builder", "ok"); } }
static public void CreateBuildSetting() { BundleBuilder.CreateBuildSetting(); }
public override void OnInspectorGUI() { // Add header GUIStyle headerStyle = new GUIStyle(GUI.skin.label); headerStyle.fontSize = 14; headerStyle.normal.textColor = Color.white; headerStyle.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("AssetBundle Setting Tool", headerStyle, GUILayout.Height(20)); EditorGUILayout.Space(); // Set external scritableobject for preprcessing and postprocessing if it is necessary. builder.external = EditorGUILayout.ObjectField("External:", builder.external, typeof(ScriptableObject), true) as ScriptableObject; EditorGUILayout.Space(); // Set assetbundle build target. SetBuildTarget(); EditorGUILayout.Space(); // AssetBundle Options SetBundleOptions(); EditorGUILayout.Space(); // Output path setting EditorGUILayout.LabelField("Output Path:", EditorStyles.boldLabel); using (new EditorGUILayout.HorizontalScope()) { string path = string.Empty; if (string.IsNullOrEmpty(builder.outputPath)) { path = BundleBuilder.GetProjectPath(); } else { path = builder.outputPath; } builder.outputPath = GUILayout.TextField(builder.outputPath, GUILayout.MinWidth(250)); if (GUILayout.Button("...", GUILayout.Width(20))) { string projectFolder = Path.Combine(BundleBuilder.GetProjectPath(), builder.outputPath); path = EditorUtility.OpenFolderPanel("Select folder", projectFolder, ""); if (path.Length != 0) { builder.outputPath = path.Replace(BundleBuilder.GetProjectPath(), ""); } } } EditorGUILayout.Space(); // Build EditorGUILayout.LabelField("AssetBundle Build:", EditorStyles.boldLabel); if (GUILayout.Button("Build")) { //HACK: To prevent InvalidOperationException. // See http://answers.unity3d.com/questions/852155/invalidoperationexception-operation-is-not-valid-d-1.html EditorApplication.delayCall += builder.Build; } if (GUI.changed) { EditorUtility.SetDirty(builder); AssetDatabase.SaveAssets(); } }
public static void CreateBuildSetting() { BundleBuilder instance = ScriptableObject.CreateInstance<BundleBuilder>(); AssetDatabase.CreateAsset(instance, "Assets/AssetBundleManager/Editor/AssetBundleBuildSetting.asset"); AssetDatabase.SaveAssets(); }
void OnEnable() { builder = target as BundleBuilder; }