動的にScriptableObjectを生成する - (Unity初心者)
はじめに 敵の設定パラメーターやステージ情報などのゲーム実行時には変わらないデータを格納するのに便利なScriptableObject。 今回はこのScriptableObjectを動的に(処理を書いて自動で)プロジェクトのアセットに作成する。 コード全体 #if UNITY_EDITOR using UnityEditor; #endif namespace Myfolder.DataBese { public class StageCreator { private const string GENERATE_STAGE_ASSETPATH = "Assets/Myfolder/DataBase/generateStage"; public static void CreateStageAsset(Stage _generateStage) { #if UNITY_EDITOR // 同一ファイル名が被らないようにする int fileCount = 1; var assetPath = GENERATE_STAGE_ASSETPATH + $"/{fileCount}.asset"; while (AssetDatabase.LoadAssetAtPath<Stage>(assetPath) != null) { fileCount++; assetPath = GENERATE_STAGE_ASSETPATH + $"/{fileCount}.asset"; } // ScriptableObjectをアセットとして保存 AssetDatabase.CreateAsset(_generateStage, assetPath); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); #else Debug.LogError("This method sho