Files
JJBB/Assets/Editor/Utilities/RemoveAssetWindow.cs

45 lines
1.6 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using System.IO;
using UnityEditor;
using UnityEngine;
namespace BundleV2
{
public class RemoveAssetWindow : EditorWindow
{
private Object _asset;
private void OnGUI()
{
_asset = EditorGUILayout.ObjectField("To Remove", _asset, typeof(Object), false);
GUILayout.Space(5f);
if (GUILayout.Button("Remove") && _asset)
{
var asset = _asset;
_asset = null;
var assetPath = AssetDatabase.GetAssetPath(asset);
if (!string.IsNullOrEmpty(assetPath) && assetPath.StartsWith(AssetConst.nonInternalHeader))
{
var relativePath = assetPath.Substring(AssetConst.nonInternalHeader.Length);
var source = EditorCommonUtility.AssetToFilePath(assetPath);
var target = Application.dataPath.MoveUp().Open("UnusedAssets").Open(relativePath);
var dir = Path.GetDirectoryName(target);
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
File.Move(source, target);
source += AssetConst.metaExtension;
if (File.Exists(source))
{
target += AssetConst.metaExtension;
File.Move(source, target);
}
}
}
}
[MenuItem("Bundle V2/Remove Asset")]
public static void Create()
{
GetWindow<RemoveAssetWindow>();
}
}
}