public void OnEnable()
    {
        LocalDLCPath    = EditorUserSettings.GetConfigValue("UseLocalDataSettingWindow_LocalDLCPath");
        UnityEditorPath = EditorUserSettings.GetConfigValue("UseLocalDataSettingWindow_UnityEditorPath");
        if (!int.TryParse(EditorUserSettings.GetConfigValue("UseLocalDataSettingWindow_SelectDLCType"), out SelectDLCType))
        {
            SelectDLCType = 0;
        }
        var folders = EditorUserSettings.GetConfigValue("UseLocalDataSettingWindow_UseFolders");

        foreach (var obj in System.Enum.GetValues(typeof(DLCManager.DLC_FOLDER)))
        {
            DLCManager.DLC_FOLDER folder = (DLCManager.DLC_FOLDER)obj;
            if (folder == DLCManager.DLC_FOLDER.MAX)
            {
                continue;
            }
            if (!UseDlcTypes.ContainsKey(folder))
            {
                UseDlcTypes.Add(folder, false);
            }
            UseDlcTypes [folder] = folders != null && folders.Contains(folder.ToString());
        }
    }
    public void OnGUI()
    {
        GUILayout.Space(10);

        EditorGUILayout.BeginVertical(GUI.skin.box);
        {
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.Label("ローカルデータロード設定");
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            GUILayout.Space(10);
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.Label("glare-assets UnityProject Path:");
                string localDLCPath = GUILayout.TextField(LocalDLCPath);
                if (GUILayout.Button("..."))
                {
                    localDLCPath = EditorUtility.OpenFolderPanel("glare-assets Project Path", LocalDLCPath, "");
                }
                if (localDLCPath != LocalDLCPath && !string.IsNullOrEmpty(localDLCPath))
                {
                    EditorUserSettings.SetConfigValue("UseLocalDataSettingWindow_LocalDLCPath", localDLCPath);
                    LocalDLCPath = localDLCPath;
                }
            }
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(10);

            EditorGUI.BeginChangeCheck();
            {
                SelectDLCType = GUILayout.SelectionGrid(SelectDLCType, new string[2] {
                    "使用しない",
                    "ローカルを使用"
                }, 2);
            }
            var selectDLCTypeChange = EditorGUI.EndChangeCheck();

            if (selectDLCTypeChange)
            {
                if (SelectDLCType == 0)
                {
                    var symbols = "DEFINE_DEVELOP;";
                    PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, symbols);
                }
                else if (SelectDLCType == 1)
                {
                    var symbols = "DEFINE_DEVELOP;USE_LOCAL_DATA;";
                    PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, symbols);
                }
                EditorUserSettings.SetConfigValue("UseLocalDataSettingWindow_SelectDLCType", SelectDLCType.ToString());
            }
            if (SelectDLCType == 1)
            {
                bool allChange = false;
                EditorGUILayout.BeginHorizontal();
                {
                    if (GUILayout.Button("全てチェック"))
                    {
                        foreach (var obj in System.Enum.GetValues(typeof(DLCManager.DLC_FOLDER)))
                        {
                            DLCManager.DLC_FOLDER folder = (DLCManager.DLC_FOLDER)obj;
                            if (folder == DLCManager.DLC_FOLDER.MAX)
                            {
                                continue;
                            }
                            UseDlcTypes [folder] = true;
                            allChange            = true;
                        }
                    }
                    if (GUILayout.Button("全て外す"))
                    {
                        foreach (var obj in System.Enum.GetValues(typeof(DLCManager.DLC_FOLDER)))
                        {
                            DLCManager.DLC_FOLDER folder = (DLCManager.DLC_FOLDER)obj;
                            if (folder == DLCManager.DLC_FOLDER.MAX)
                            {
                                continue;
                            }
                            UseDlcTypes [folder] = false;
                            allChange            = true;
                        }
                    }
                }
                EditorGUILayout.EndHorizontal();
                EditorGUI.BeginChangeCheck();
                foreach (var obj in System.Enum.GetValues(typeof(DLCManager.DLC_FOLDER)))
                {
                    DLCManager.DLC_FOLDER folder = (DLCManager.DLC_FOLDER)obj;
                    if (folder == DLCManager.DLC_FOLDER.MAX)
                    {
                        continue;
                    }
                    UseDlcTypes [folder] = GUILayout.Toggle(UseDlcTypes [folder], folder.ToString());
                }
                var useDlcTypesChange = EditorGUI.EndChangeCheck();
                if (useDlcTypesChange || allChange)
                {
                    EditorUserSettings.SetConfigValue("UseLocalDataSettingWindow_UseFolders", string.Join(":", UseDlcTypes.Where(x => x.Value).Select(x => x.Key.ToString()).ToArray()));
                }

                foreach (var kv in UseDlcTypes)
                {
                    if (kv.Value)
                    {
                        if (kv.Key == DLCManager.DLC_FOLDER.Sound)
                        {
                            if (!System.IO.Directory.Exists(string.Format("{0}/Assets/StreamingAssets/_Export{1}/{2}", LocalDLCPath, kv.Key.ToString(), NamePathPlatform)))
                            {
                                EditorGUILayout.HelpBox(string.Format("{0}のAssetBundleを作成してください。", kv.Key.ToString()), MessageType.Error);
                            }
                        }
                        else
                        {
                            if (!System.IO.Directory.Exists(string.Format("{0}/AssetBundle/_Export{1}/{2}", LocalDLCPath, kv.Key.ToString(), NamePathPlatform)))
                            {
                                EditorGUILayout.HelpBox(string.Format("{0}のAssetBundleを作成してください。", kv.Key.ToString()), MessageType.Error);
                            }
                        }
                    }
                }
            }
            GUILayout.Space(10);
        }
        EditorGUILayout.EndVertical();

        GUILayout.Space(10);

        EditorGUILayout.BeginVertical(GUI.skin.box);
        {
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.Label("AssetBundle作成関連");
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            GUILayout.Space(10);

            if (isRunning)
            {
                EditorGUILayout.HelpBox("ビルド中です。Windowを閉じないでください。", MessageType.Info);
            }
            else
            {
                EditorGUILayout.BeginHorizontal();
                {
                    GUILayout.Label("UnityEditor Path:");
                    string unityEditorPath = GUILayout.TextField(UnityEditorPath);

                    if (GUILayout.Button("..."))
                    {
#if UNITY_EDITOR_OSX
                        unityEditorPath = EditorUtility.OpenFilePanel("UnityEditor Path", UnityEditorPath, "app");
#elif UNITY_EDITOR_WIN
                        unityEditorPath = EditorUtility.OpenFilePanel("UnityEditor Path", UnityEditorPath, "exe");
#endif
                    }
                    if (unityEditorPath != UnityEditorPath && !string.IsNullOrEmpty(unityEditorPath))
                    {
                        EditorUserSettings.SetConfigValue("UseLocalDataSettingWindow_UnityEditorPath", unityEditorPath);
                        UnityEditorPath = unityEditorPath;
                    }
                }
                EditorGUILayout.EndHorizontal();

                GUILayout.Space(10);

#if UNITY_EDITOR_OSX
                if (!System.IO.Directory.Exists(UnityEditorPath))
                {
#elif UNITY_EDITOR_WIN
                if (!System.IO.File.Exists(UnityEditorPath))
                {
#endif
                    EditorGUILayout.HelpBox("UnityEditorのパスを設定してください。設定後AssetBundleの作成メニューを選択できます。", MessageType.Error);
                }
                else if (!System.IO.Directory.Exists(LocalDLCPath))
                {
                    EditorGUILayout.HelpBox("glare-assetsのプロジェクトのパスを設定してください。設定後AssetBundleの作成メニューを選択できます。", MessageType.Error);
                }
                else
                {
                    if (GUILayout.Button("Create Master AssetBundle"))
                    {
                        CreateAssetBundle("Master");
                    }
                    if (GUILayout.Button("Create ALL AssetBundle"))
                    {
                        CreateAssetBundle("ALL");
                    }
                    if (GUILayout.Button("Create Utage AssetBundle"))
                    {
                        CreateAssetBundle("Utage");
                    }
                }
            }

            GUILayout.Space(10);
        }
        EditorGUILayout.EndVertical();
    }