【Unity】アセット名を変更する
アセット名を変更するには、AssetDatabase.RenameAsset を使えば可能です。
目次
サンプルコード
Assets/Resources フォルダ以下のMaterial ファイルに"_mat" を付ける場合は以下の様になります。
using System.IO;
using UnityEditor;
namespace Editor
{
/// <summary>
/// Materialのファイル名に "_mat" を付与します。
/// </summary>
public class RenameMaterialFiles : EditorWindow
{
[MenuItem("Window/RenameMaterialFiles")]
public static void Open()
{
var window = EditorWindow.CreateWindow<RenameMaterialFiles>();
window.Show();
window.Run();
}
/// <summary>
/// 実行。
/// </summary>
void Run()
{
var AllMaterialResourceArray = Directory.GetFiles("Assets/Resources", "*.mat", SearchOption.AllDirectories);
foreach (var path in AllMaterialResourceArray)
{
var targetPath = UnifyPath(path);
if (targetPath.Contains("_mat"))
{
continue;
}
var fileName = Path.GetFileNameWithoutExtension(targetPath) + "_mat";
AssetDatabase.RenameAsset(targetPath, fileName);
}
}
/// <summary>
/// パスの解決。基本的にパスは全て"/"で使われているものとして動作する("\\"は用いない)
/// </summary>
private string UnifyPath(string _path)
{
return _path.Replace("\\", "/");
}
}
}