けいごのなんとか

Unityユーザーとしてのブログ。ギリギリ路線走ってます。

AssetDatabase.StartAssetEditing

この情報はUnity Documentation Tabsでも閲覧することが出来ます

Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です


まとめて編集&再インポートに使用する

インポート中にダイアログを表示させるのには「EditorUtility.DisplayDialog」を使用しますが複数のアセットの再インポートを行う場合は「AssetDatabase.StartAssetEditing」と「AssetDatabase.StopAssetEditing」を使用します。こうすることでStartAssetEditingとStopAssetEditingに囲まれたインポート処理中はダイアログ表示が自動で行われるようになります。

例としてサウンドのインポート設定を3Dから2Dへ変更します。

using UnityEngine;
using UnityEditor;
 
public class AudioImporterSettings
{
    [MenuItem("Assets/Apply 2D Sound")]
    static void Apply2DSound ()
    {
        var sounds = Selection.GetFiltered (typeof(AudioClip), SelectionMode.DeepAssets);
        
        AssetDatabase.StartAssetEditing ();
        foreach (var sound in sounds) {
            
            var path = AssetDatabase.GetAssetPath (sound);
            
            var audioImporter = AudioImporter.GetAtPath (path) as AudioImporter;
            
            if (audioImporter == false)
                continue;
            
            audioImporter.threeD = false;
 
            AssetDatabase.ImportAsset(path);
            
        }
        AssetDatabase.StopAssetEditing ();
        AssetDatabase.Refresh ();
        
        Debug.Log ("done.");
    }
    
    [MenuItem("Assets/Apply 2D Sound",true)]
    static bool IsFolder ()
    {
        var sounds = Selection.GetFiltered (typeof(AudioClip), SelectionMode.DeepAssets);
        return sounds.Length != 0;
    }
}

動画を再生するにはvideoタグをサポートしたブラウザが必要です。