diff --git a/src/MessagePack.UnityClient/Assets/Scripts/Editor/PackageExporter.cs b/src/MessagePack.UnityClient/Assets/Scripts/Editor/PackageExporter.cs new file mode 100644 index 000000000..30bdb65fe --- /dev/null +++ b/src/MessagePack.UnityClient/Assets/Scripts/Editor/PackageExporter.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine; + +public static class PackageExporter +{ + [MenuItem("Tools/Export Unitypackage")] + public static void Export() + { + // configure + var root = "Scripts/MessagePack"; + var exportPath = "./MessagePack.Unity.unitypackage"; // missing version:) + + var path = Path.Combine(Application.dataPath, root); + var assets = Directory.GetFiles(path, "*", SearchOption.AllDirectories) + .Where(x => Path.GetExtension(x) == ".cs" || Path.GetExtension(x) == ".asmdef" || Path.GetExtension(x) == ".json" || Path.GetExtension(x) == ".meta") + .Select(x => "Assets" + x.Replace(Application.dataPath, "").Replace(@"\", "/")) + .ToArray(); + + UnityEngine.Debug.Log("Export below files" + Environment.NewLine + string.Join(Environment.NewLine, assets)); + + AssetDatabase.ExportPackage( + assets, + exportPath, + ExportPackageOptions.Default); + + UnityEngine.Debug.Log("Export complete: " + Path.GetFullPath(exportPath)); + } +} \ No newline at end of file