エディタ拡張でファイル保存を行う際に、保存する先を選択させるパネルを表示する方法です。
ソースコード
ソースコードは下記のとおりです。
using UnityEngine; using UnityEditor; public class SaveFilePanel : EditorWindow { [MenuItem("Window/Save File Panel")] public static void Open() { GetWindow<SaveFilePanel>("Save File Panel"); } private void OnGUI() { if (GUILayout.Button("保存")) { // 保存先のファイルパスを取得する var filePath = EditorUtility.SaveFilePanel("Save", "Assets", "default_name", "prefab"); // パスが入っていれば選択されたということ(キャンセルされたら入ってこない) if (!string.IsNullOrEmpty(filePath)) { // 保存処理 } } } }
EditorUtility.SaveFilePanel()でパネルを表示して保存先を選択させています。
第一引数はタイトル、第二引数は開いたときに表示するフォルダ、第三引数はデフォルトの名前、第四引数は拡張子です。
結果
正常にパネルが表示されました。
Asset Pathを取得したい場合
フルパスじゃなくAssetPathを取得したい場合にはEditorUtility.SaveFilePanelInProject
を使います。
使い方は下記の記事に書いてあります。