diff --git a/Assets/Examples/BuildSystem/NestedJobTest.asset b/Assets/Examples/BuildSystem/NestedJobTest.asset
index bf7c791..c4d5d34 100644
--- a/Assets/Examples/BuildSystem/NestedJobTest.asset
+++ b/Assets/Examples/BuildSystem/NestedJobTest.asset
@@ -15,4 +15,4 @@ MonoBehaviour:
tasks:
- {fileID: 11400000, guid: 2c2c2ade1e003314da0ed1c94b360728, type: 2}
destination: ./Test/
- deleteExistingDestination: 0
+ deleteExistingDestination: 1
diff --git a/Assets/Examples/BuildSystem/TestJob.asset b/Assets/Examples/BuildSystem/TestJob.asset
index a76f606..4218c05 100644
--- a/Assets/Examples/BuildSystem/TestJob.asset
+++ b/Assets/Examples/BuildSystem/TestJob.asset
@@ -15,5 +15,6 @@ MonoBehaviour:
tasks:
- {fileID: 11400000, guid: d43410207f9c4cf42815d68bbff4b32a, type: 2}
- {fileID: 11400000, guid: b1ed952066200074b9dc73f2cbc24b39, type: 2}
+ - {fileID: 11400000, guid: befca57add10d7e4bba43ece7e828ce9, type: 2}
destination: ./Builds/
deleteExistingDestination: 1
diff --git a/Assets/Examples/BuildSystem/ZipArtifacts.asset b/Assets/Examples/BuildSystem/ZipArtifacts.asset
new file mode 100644
index 0000000..619e407
--- /dev/null
+++ b/Assets/Examples/BuildSystem/ZipArtifacts.asset
@@ -0,0 +1,18 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0ead8d19a849f46459ade8202df21b28, type: 3}
+ m_Name: ZipArtifacts
+ m_EditorClassIdentifier:
+ subfolders:
+ - Win64
+ archiveDestination: Win64.zip
+ backend7ZipExePath: C:/Program Files/7-Zip/7z.exe
diff --git a/Assets/Examples/BuildSystem/ZipArtifacts.asset.meta b/Assets/Examples/BuildSystem/ZipArtifacts.asset.meta
new file mode 100644
index 0000000..d8f05ae
--- /dev/null
+++ b/Assets/Examples/BuildSystem/ZipArtifacts.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: befca57add10d7e4bba43ece7e828ce9
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildAssetBundles.cs b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildAssetBundles.cs
index 7f4bb4f..7afb6d3 100644
--- a/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildAssetBundles.cs
+++ b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildAssetBundles.cs
@@ -9,7 +9,7 @@ namespace UnityTK.BuildSystem
///
/// which will build all asset bundles specified in the project.
///
- [CreateAssetMenu(fileName = "Build AssetBundles Task", menuName = "UnityTK/BuildSystem/Build AssetBundles Task")]
+ [CreateAssetMenu(fileName = "BuildAssetBundlesTask", menuName = "UnityTK/BuildSystem/Build AssetBundles Task")]
public class BuildTask_BuildAssetBundles : BuildTask
{
[Header("Task")]
diff --git a/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildPlayer.cs b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildPlayer.cs
index 936774d..db2c292 100644
--- a/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildPlayer.cs
+++ b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_BuildPlayer.cs
@@ -10,7 +10,7 @@ namespace UnityTK.BuildSystem
///
/// Build task that builds a player.
///
- [CreateAssetMenu(fileName = "Build Player Task", menuName = "UnityTK/BuildSystem/Build Player Task")]
+ [CreateAssetMenu(fileName = "BuildPlayerTask", menuName = "UnityTK/BuildSystem/Build Player Task")]
public class BuildTask_BuildPlayer : BuildTask
{
[Header("Task")]
diff --git a/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_Zip.cs b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_Zip.cs
new file mode 100644
index 0000000..612d927
--- /dev/null
+++ b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_Zip.cs
@@ -0,0 +1,38 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using System.Diagnostics;
+using System.Linq;
+
+namespace UnityTK.BuildSystem
+{
+ ///
+ /// which will run a job.
+ ///
+ [CreateAssetMenu(fileName = "CreateZipTask", menuName = "UnityTK/BuildSystem/Create Zip Task")]
+ public class BuildTask_Zip : BuildTask
+ {
+ [Header("Build config")]
+ public List subfolders;
+ public string archiveDestination;
+
+ [Header("Backend: 7-Zip")]
+ public string backend7ZipExePath = "C:/Program Files/7-Zip/7z.exe";
+
+ public override void Run(BuildJob job, BuildJobParameters parameters)
+ {
+ List subfolders = new List(this.subfolders);
+ if (subfolders.Count == 1)
+ subfolders[0] += "/*";
+
+ if (File.Exists(backend7ZipExePath))
+ {
+ // Use 7zip backend
+ string arguments = "a " + Path.Combine(parameters.destination, archiveDestination) + " " + string.Join(" ", subfolders.Select(s => "\"" + Path.Combine(parameters.destination, s) + "\""));
+ Process.Start(backend7ZipExePath, arguments).WaitForExit();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_Zip.cs.meta b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_Zip.cs.meta
new file mode 100644
index 0000000..120a069
--- /dev/null
+++ b/Assets/UnityTK/Code/EditorCode/BuildSystem/BuildTask_Zip.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0ead8d19a849f46459ade8202df21b28
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: