示例#1
0
    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);
    }
示例#2
0
 /// <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);
 }
示例#3
0
    //=================================================================================
    //シンボルの保存
    //=================================================================================

    /// <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);
    }
示例#5
0
    //指定されたパスが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);
    }
示例#6
0
        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);
        }