// レイヤー情報作成 private static void CreateLayer() { // レイヤー番号取得 Dictionary <string, int> layerNoDictionary = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => LayerMask.NameToLayer(layer)); // レイヤーマスク番号取得 Dictionary <string, int> layerMaskNoDictionary = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => 1 << LayerMask.NameToLayer(layer)); // スクリプト作成 ConstantsEnumCreator <int> enumCreator = new ConstantsEnumCreator <int>(); enumCreator.Create("LayerEnum", "レイヤー番号クラス", layerNoDictionary); enumCreator.Create("LayerMaskEnum", "レイヤーマスク番号クラス", layerMaskNoDictionary); }
// シーン情報作成 private static void CreateScene() { // シーン情報取得 Dictionary <string, string> scenesNameDictionary = new Dictionary <string, string>(); Dictionary <string, int> scenesNoDictionary = new Dictionary <string, int>(); for (int i = 0; i < EditorBuildSettings.scenes.Count(); i++) { string sceneName = Path.GetFileNameWithoutExtension(EditorBuildSettings.scenes[i].path); scenesNameDictionary[sceneName] = sceneName; scenesNoDictionary[sceneName] = i; } // スクリプト作成 ConstantsNameCreator <string> nameCreator = new ConstantsNameCreator <string>(); nameCreator.Create("SceneName", "シーン名クラス", scenesNameDictionary); ConstantsEnumCreator <int> enumCreator = new ConstantsEnumCreator <int>(); enumCreator.Create("SceneEnum", "シーン番号クラス", scenesNoDictionary); // シーンデータ書出し { // ファイル情報設定 string dataPath = DirectoryPath.ResourcePath + FileName.SceneDataFile + Extension.AssetUnity; //SceneDataを新規作成、既にあるものは削除 SceneData data = ScriptableObject.CreateInstance <SceneData>(); AssetDatabase.DeleteAsset(dataPath); AssetDatabase.CreateAsset(data, dataPath); data.hideFlags = HideFlags.NotEditable; foreach (KeyValuePair <string, int> valuePair in scenesNoDictionary) { SceneData.Param param = new SceneData.Param(); param.Name = valuePair.Key; param.No = valuePair.Value; data.list.Add(param); } //変更を反映 ScriptableObject obj = AssetDatabase.LoadAssetAtPath(dataPath, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(obj); } }