ソースコード

作ったわけ
HLSLをUnityで作るには右クリックしてShow in Explorer
名前を変更して拡張子をhlslに書き換えれば完成!
しかしこの一連の動作が面倒くさいのでEditor拡張して簡単に作れるようにしようというわけです。
解説
[MenuItem("Assets/Create/Shader/HLSLScript")]
これでUnityの上のメニューバーのAssetsボタンやProjectウィンドウで右クリックしたときにメニューを追加します。
path = AssetDatabase.GetAssetPath(Selection.activeInstanceID);
これで右クリックした場所のパスを取得します。
path = EditorUtility.SaveFilePanelInProject("CreatHLSLScript", "NewShader", "hlsl", "", path);
EditorUtility.SaveFilePanelInProject()
を使うことでファイルを生成するウィンドウを出すことができます。
参考 : https://docs.unity3d.com/ja/current/ScriptReference/EditorUtility.SaveFilePanelInProject.html
File.WriteAllText(path,"");
File.WriteAllText()
で新しいファイルを作成します。
参考 : https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.writealltext?view=net-6.0
AssetDatabase.Refresh();
最後にAssetDatabase.Refresh()
で更新を行います。