スクリプトからcsファイルを生成する方法です。
ソースコード
using UnityEngine; using UnityEditor; using System.IO; public class ScriptGenerator : MonoBehaviour { public static readonly string CODE_TEMPLATE = @" public class #CLASS_NAME# { public void #METHOD_NAME#() { } } "; [MenuItem("Assets/Generate Sample Script")] private static void GenerateSampleScript() { var filePath = "Assets/GenerateTest/Sample.cs"; var className = "SampleClass"; var methodName = "SampleMethod"; // フォルダを作成 var folderPath = Path.GetDirectoryName(filePath); CreateFolder(folderPath); // アセットのパスを作成 var assetPath = AssetDatabase.GenerateUniqueAssetPath(filePath); // コードテンプレートを置換 var code = CODE_TEMPLATE.Replace(@"#CLASS_NAME#", className).Replace(@"#METHOD_NAME#", methodName); File.WriteAllText(assetPath, code); AssetDatabase.Refresh(); } /// <summary> /// 指定されたパスのフォルダを生成する /// </summary> /// <param name="path">フォルダパス(例: Assets/Sample/FolderName)</param> private static void CreateFolder(string path) { var target = ""; var splitChars = new char[]{ Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }; foreach (var dir in path.Split(splitChars)) { var parent = target; target = Path.Combine(target, dir); if (!AssetDatabase.IsValidFolder(target)) { AssetDatabase.CreateFolder(parent, dir); } } } }
説明はコメントの通りです。 難しいことはやっていません。
結果
右クリックからメニューを選択すると、このようなcsファイルが生成されます。
public class SampleClass { public void SampleMethod() { } }