54 lines
1.8 KiB
C#
54 lines
1.8 KiB
C#
using System;
|
|
using System.IO;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace Assets.Editor
|
|
{
|
|
public static class CreateAssetBundles
|
|
{
|
|
private const string UNITY_DIRECTORY = "AssetBundles";
|
|
private const string NITROX_DIRECTORY = "../Nitrox.Assets.Subnautica/AssetBundles";
|
|
|
|
[MenuItem("Nitrox/Build AssetBundles")]
|
|
private static void BuildAllAssetBundles()
|
|
{
|
|
try
|
|
{
|
|
if (Directory.Exists(UNITY_DIRECTORY))
|
|
{
|
|
Directory.Delete(UNITY_DIRECTORY, true);
|
|
}
|
|
|
|
Directory.CreateDirectory(UNITY_DIRECTORY);
|
|
|
|
BuildPipeline.BuildAssetBundles(UNITY_DIRECTORY, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
|
|
|
|
if (Directory.Exists(NITROX_DIRECTORY))
|
|
{
|
|
foreach (string assetBundleName in AssetDatabase.GetAllAssetBundleNames())
|
|
{
|
|
if (assetBundleName == "AssetBundles" || assetBundleName.Contains(".manifest"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
File.Copy(Path.Combine(UNITY_DIRECTORY, assetBundleName), Path.Combine(NITROX_DIRECTORY, assetBundleName), true);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new DirectoryNotFoundException(NITROX_DIRECTORY + " wasn't found");
|
|
}
|
|
|
|
Debug.Log("Building Nitrox AssetBundles successfully finished");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.LogError("Building Nitrox AssetBundles successfully failed");
|
|
Debug.LogException(ex);
|
|
}
|
|
}
|
|
}
|
|
}
|