Files
Nitrox/NitroxUnity/Assets/Editor/CreateAssetsBundle.cs
2025-07-06 00:23:46 +02:00

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);
}
}
}
}