private static void Create() { //タグ Dictionary <string, string> tagDic = InternalEditorUtility.tags.ToDictionary(value => value); ConstantsClassCreator.Create("DefineTagName", "AutoOutputFromEditor : タグ名を定数で管理するクラス", tagDic); //レイヤーとレイヤーマスク Dictionary <string, int> layerNoDic = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => LayerMask.NameToLayer(layer)); Dictionary <string, int> layerMaskNoDic = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => 1 << LayerMask.NameToLayer(layer)); ConstantsClassCreator.Create("DefineLayerNo", "AutoOutputFromEditor : レイヤー番号を定数で管理するクラス", layerNoDic); ConstantsClassCreator.Create("DefineLayerMaskNo", "AutoOutputFromEditor : レイヤーマスク番号を定数で管理するクラス", layerMaskNoDic); //ソーティングレイヤー Dictionary <string, string> sortingLayerDic = GetSortingLayerNames().ToDictionary(value => value); ConstantsClassCreator.Create("DefineSortingLayerName", "AutoOutputFromEditor : ソーティングレイヤー名を定数で管理するクラス", sortingLayerDic); // PlayerSettingsを抽出してクラス化. Dictionary <string, string> playerSettingsDic = new Dictionary <string, string>() { { "ProductName", PlayerSettings.productName }, { "BundleVersion", PlayerSettings.bundleVersion }, }; ConstantsClassCreator.Create("DefinePlayerSettings", "AutoOutputFromEditor : PlayerSettingsの設定を定数で管理するクラス", playerSettingsDic); }
/// <summary> /// スクリプトを作成します /// </summary> public static void CreateScript() { string[] scenesName = new string[settingScenes]; for (int i = 0; i < settingScenes; i++) { scenesName[i] = Path.GetFileNameWithoutExtension(EditorBuildSettings.scenes[i].path); } ConstantsClassCreator.Create("ScenesNames", "ProjectSettingに設定されているシーンを定数で管理するクラス", scenesName); }
//================================================================================= //シンボルの保存 //================================================================================= /// <summary> /// 指定したプラットフォームにシンボルを保存 /// </summary> public static void Save(BuildTargetGroup targetGroup, bool needToCreateDefineValue = true) { _isEdited = false; //シンボルのkeyを空白を無視かつ重複しないようにに取得 List <string> symbolKeyList = _symbolList .Select(symbol => symbol.Key).Where(symbolKey => !string.IsNullOrEmpty(symbolKey)) .Distinct().ToList(); //シンボルを一つの文字列にまとめ、EditorUserSettingsに保存 EditorUserSettings.SetConfigValue(SYMBOL_KEY_LIST_SAVE_KEY, string.Join(SYMBOL_SEPARATOR, symbolKeyList.ToArray())); //各シンボルの対応した設定を保存 string enabledSymbols = ""; Dictionary <string, string> _defineValueDic = new Dictionary <string, string>(); foreach (DefineSymbol symbol in _symbolList) { symbol.Save(); //valueが設定されている場合は定数クラスに書き出すためにDictにまとめる if (needToCreateDefineValue && !string.IsNullOrEmpty(symbol.Value)) { _defineValueDic[symbol.Key] = symbol.Value; } //有効になっているシンボルは設定するように;区切りでenabledSymbolsにまとめる if (symbol.IsEnabled) { if (!string.IsNullOrEmpty(enabledSymbols)) { enabledSymbols += SYMBOL_SEPARATOR; } enabledSymbols += symbol.Key; } } //設定するグループが不明だとエラーがでるので設定しないように if (targetGroup != BuildTargetGroup.Unknown) { PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, enabledSymbols); } //Symbolに対応した値を定数クラス、DefineValueを書き出す if (needToCreateDefineValue) { ConstantsClassCreator.Create <string>("DefineValue", "Symbolに対応した値を定数で管理するクラス", _defineValueDic); } }
private static void Create() { //タグ Dictionary <string, string> tagDic = InternalEditorUtility.tags.ToDictionary(value => value); ConstantsClassCreator.Create("TagName", "タグ名を定数で管理するクラス", tagDic); //シーン // Dictionary<string, string> scenesNameDic = new Dictionary<string, string>(); // Dictionary<string, int> scenesNoDic = new Dictionary<string, int>(); // // for(int i = 0; i < EditorBuildSettings.scenes.Count(); i++){ // string sceneName = Path.GetFileNameWithoutExtension (EditorBuildSettings.scenes [i].path); // scenesNameDic [sceneName] = sceneName; // scenesNoDic [sceneName] = i; // } // // CreateSceneData (scenesNoDic); // ConstantsClassCreator.Create ("SceneName", "シーン名を定数で管理するクラス", scenesNameDic); // ConstantsClassCreator.Create ("SceneNo" , "シーン番号を定数で管理するクラス", scenesNoDic); //レイヤーとレイヤーマスク Dictionary <string, int> layerNoDic = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => LayerMask.NameToLayer(layer)); Dictionary <string, int> layerMaskNoDic = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => 1 << LayerMask.NameToLayer(layer)); ConstantsClassCreator.Create("LayerNo", "レイヤー番号を定数で管理するクラス", layerNoDic); ConstantsClassCreator.Create("LayerMaskNo", "レイヤーマスク番号を定数で管理するクラス", layerMaskNoDic); //ソーティングレイヤー Dictionary <string, string> sortingLayerDic = GetSortingLayerNames().ToDictionary(value => value); ConstantsClassCreator.Create("SortingLayerName", "ソーティングレイヤー名を定数で管理するクラス", sortingLayerDic); Dictionary <string, string> playerSettingsDic = new Dictionary <string, string>() { { "ProductName", PlayerSettings.productName }, { "BundleVersion", PlayerSettings.bundleVersion }, }; ConstantsClassCreator.Create("PlayerSettingsValue", "PlayerSettingsの設定を定数で管理するクラス", playerSettingsDic); }
//指定されたパスがSpriteAtlasであれば定数クラスを生成 private static void CreateIfneeded(string filePath) { //拡張子からSpriteAtlasかどうか判定 if (Path.GetExtension(filePath) != ".spriteatlas") { return; } //SpriteAtlasを取得 var spriteAtlas = AssetDatabase.LoadAssetAtPath <SpriteAtlas>(filePath); //全Spriteを取得し、さらにその名前を取得(Cloneは除去する) var spriteArray = new Sprite[spriteAtlas.spriteCount]; spriteAtlas.GetSprites(spriteArray); var cloneTextLength = "(Clone)".Length; var spriteNameDict = spriteArray.Select(sprite => sprite.name.Substring(0, sprite.name.Length - cloneTextLength)).ToDictionary(spriteName => spriteName); //定数クラスを作成 ConstantsClassCreator.Create(spriteAtlas.name + "Key", spriteAtlas.name + "に含まれるSpriteの名前を定数で管理するクラス", CONSTNTS_CLASS_DIRECTORY_PATH, spriteNameDict); }
public static void Creator(string directory_path) { //オーディオファイルへのパスを抽出 string directory_name = Path.GetFileName(directory_path); var audio_path_dict = new Dictionary <string, string>(); foreach (var audio_clip in Resources.LoadAll <AudioClip>(directory_name)) { //アセットへのパスを取得 var asset_path = AssetDatabase.GetAssetPath(audio_clip); //オーディオ名の重複チェック var audio_name = audio_clip.name; if (audio_path_dict.ContainsKey(audio_name)) { Debug.LogError(audio_name + " is duplicate!\n1 : " + directory_name + "/" + audio_name + "\n2 : " + audio_path_dict[audio_name]); } audio_path_dict[audio_name] = directory_name + "/" + audio_name; } //定数クラス作成 ConstantsClassCreator.Create(directory_name + "Path", directory_name + "ファイルへのパスを定数で管理するクラス", audio_path_dict, ConstantsClassCreator.PATH, NAME_SPACE); }