ダウンロード済みのUnityアセットを一括インポートする拡張エディタ

をChatGPT4にお願いしたら作ってもらえたので、置いておきます。
よしなに使ってください。

上から8行目辺りの「アセットの保存場所」となっているところを、自身のアセット保存フォルダの絶対パスに置き換えてください。
(基本的にはC:/Users/(ユーザー名)/AppData/Roaming/Unity/Asset Store-5.x)(念のため補足しておきますが、(ユーザー名)の部分は置き換えてくださいね)

using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;

public class BatchImporterWindow : EditorWindow
{
    private string rootFolderPath = "アセットの保存場所";
    private Vector2 scrollPosition;
    private bool[] packageToggles;
    private string[] packagePaths;

    [MenuItem("Window/Batch Importer")]
    public static void ShowWindow()
    {
        GetWindow<BatchImporterWindow>("Batch Importer");
    }

    private void OnEnable()
    {
        FindPackages();
    }

    private void OnGUI()
    {
        EditorGUILayout.LabelField("Batch Importer", EditorStyles.boldLabel);
        EditorGUILayout.LabelField("Root Folder Path", EditorStyles.label);
        rootFolderPath = EditorGUILayout.TextField(rootFolderPath);

        if (GUILayout.Button("Refresh Package List"))
        {
            FindPackages();
        }

        EditorGUILayout.Space();
        EditorGUILayout.LabelField("Packages", EditorStyles.label);

        scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);

        for (int i = 0; i < packagePaths.Length; i++)
        {
            packageToggles[i] = EditorGUILayout.ToggleLeft(Path.GetFileName(packagePaths[i]), packageToggles[i]);
        }

        EditorGUILayout.EndScrollView();

        if (GUILayout.Button("Import Selected Packages"))
        {
            ImportSelectedPackages();
        }
    }

    private void FindPackages()
    {
        packagePaths = Directory.GetFiles(rootFolderPath, "*.unitypackage", SearchOption.AllDirectories);
        packageToggles = new bool[packagePaths.Length];
    }

    private void ImportSelectedPackages()
    {
        for (int i = 0; i < packagePaths.Length; i++)
        {
            if (packageToggles[i])
            {
                AssetDatabase.ImportPackage(packagePaths[i], false);
            }
        }
    }
}

UnityプロジェクトにEditorという名前のフォルダを作成し、その中に新規C#ファイルを作って開き、上記のコードを貼り付け、保存します。
ファイル名は何でも大丈夫みたいですが、"BatchImporterWindow.cs"とかにしておくといいでしょう。

そうするとWindowメニューの下にBatch Importerという新しい項目が追加されています。これを選択すると、一括インポートウィンドウが表示されます。

あとは適当にインポートしたいアセットにチェックを入れて、下のImport Selected Packageを押すと一括でダウンロードできます。

今のところ1個だけインポートする場合と、複数インポートする場合を試してみましたが、問題なくインポートできていることが確認できています。
ですが、何かしら問題が発生したら追記しようと思っています。


この記事が気に入ったらサポートをしてみませんか?