Ejemplo n.º 1
0
    /// <summary>
    /// 创建预置
    /// </summary>
    /// <param name="_prefab">prefab配置</param>
    void OnCreatePrefab(EditorEngineAssetConfig _prefab)
    {
        if (!EditorStrayFogUtility.assetBundleName.IsIllegalFile(_prefab.name))
        {
            bool isCreate = true;
            if (File.Exists(_prefab.fileName))
            {
                isCreate = EditorUtility.DisplayDialog("Exists Prefab", "The prefab '" + _prefab.fileName + "' already exists,are you sure want to cover it?", "Yes", "No");
            }
            if (isCreate)
            {
                _prefab.CreateAsset();
                GameObject prefab = PrefabUtility.LoadPrefabContents(_prefab.fileName);
                prefab.layer = LayerMask.NameToLayer("UI");
                prefab.AddComponent <RectTransform>();
                PrefabUtility.SaveAsPrefabAsset(prefab, _prefab.fileName);

                AssetDatabase.SaveAssets();
                EditorStrayFogApplication.PingObject(prefab);
                EditorStrayFogApplication.ExecuteMenu_AssetsRefresh();
                EditorUtility.DisplayDialog("Create New Window Prefab", "Create window prefab is complete.", "OK");
            }
        }
        else
        {
            EditorUtility.DisplayDialog("Illegal Name", "Window Name is not legal.", "OK");
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 是否有相同的脚本
    /// </summary>
    /// <param name="_script">脚本</param>
    /// <param name="_winName">窗口名称</param>
    /// <returns>true:是,false:否</returns>
    bool OnSameScript(EditorTextAssetConfig _script, string _winName)
    {
        bool hasSame = false;

        if (mScriptConfig.paths != null && mScriptConfig.paths.Length > 0)
        {
            string directory = string.Empty;
            string name      = string.Empty;
            string path      = string.Empty;
            foreach (string p in mScriptConfig.paths)
            {
                name      = OnGetName(_winName);
                directory = OnGetDirectory(p, _winName).TransPathSeparatorCharToUnityChar();
                path      = Path.Combine(directory, name + _script.extAttribute.ext).TransPathSeparatorCharToUnityChar();
                if (!_script.directory.Equals(directory) && File.Exists(path))
                {
                    hasSame = true;
                    EditorGUILayout.HelpBox("The same script in =>" + path, MessageType.Error);
                    EditorStrayFogApplication.PingObject(path);
                    break;
                }
            }
        }
        return(hasSame);
    }
    /// <summary>
    /// DrawAssetNodes
    /// </summary>
    private void DrawAssetNodes()
    {
        mScrollViewPosition = EditorGUILayout.BeginScrollView(mScrollViewPosition);
        for (int i = 0; i < mAsmdefs.Count; i++)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(string.Format("{0}. 【{1}】",
                                                     (i + 1).PadLeft(mAsmdefs.Count), mAsmdefs[i].name));
            mAsmdefs[i].assetNode.isHotfix = EditorGUILayout.ToggleLeft("isHotfix", mAsmdefs[i].assetNode.isHotfix);

            if (GUILayout.Button("Setting"))
            {
                EditorStrayFogApplication.PingObject(mAsmdefs[i].assetNode);
            }
            if (GUILayout.Button("Brower"))
            {
                EditorStrayFogApplication.PingObject(mAsmdefs[i].path);
            }
            if (GUILayout.Button("Reveal"))
            {
                EditorStrayFogApplication.RevealInFinder(mAsmdefs[i].path);
            }
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndScrollView();

        if (GUILayout.Button("Export Asmdef Map To XLS"))
        {
            EditorStrayFogExecute.ExecuteAsmdefToXLS();
            EditorUtility.DisplayDialog("Asmdef Map", "ExportAsmdefMapToXLS successed.", "OK");
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// 保存宏定义符号
    /// </summary>
    /// <param name="_symbols">宏定义符号</param>
    public void SaveMacroDefineScriptingDefineSymbols(Dictionary <int, EditorMacroDefineSymbol> _symbols)
    {
        List <string> saveDefines   = new List <string>();
        List <string> removeDefines = new List <string>();

        foreach (EditorMacroDefineSymbol key in _symbols.Values)
        {
            foreach (EditorMacroDefineSymbol_Item d in key.defineMaping.Values)
            {
                if (d.isChecked)
                {
                    if (!saveDefines.Contains(d.name))
                    {
                        saveDefines.Add(d.name);
                    }
                }
                else
                {
                    if (!removeDefines.Contains(d.name))
                    {
                        removeDefines.Add(d.name);
                    }
                }
            }
        }
        EditorStrayFogApplication.RemoveScriptingDefineSymbol(removeDefines.ToArray());
        EditorStrayFogApplication.AddScriptingDefineSymbol(saveDefines.ToArray());
    }
Ejemplo n.º 5
0
 static void EditorProjectMenuItem_ExecuteBuildProjectAssets()
 {
     EditorStrayFogExecute.ExecuteBuildProjectAssets <StrayFogRunningApplication>();
     EditorStrayFogExecute.ExecuteBuildProjectAssets <StrayFogSetting>();
     EditorStrayFogExecute.ExecuteHotfixAsmdefSetting();
     EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildProjectAssets);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 执行发包
 /// </summary>
 void OnExecuteBuildPackage()
 {
     if (EditorStrayFogApplication.MenuItemQuickDisplayDialog_OKCancel("Are you sure ExecuteBuildPackage?"))
     {
         EditorStrayFogExecute.ExecuteBuildPackage();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed("ExecuteBuildPackage");
     }
 }
Ejemplo n.º 7
0
 public static void EditorDevelopMenuItem_ClearAllAssetBundleNameWindow()
 {
     if (EditorStrayFogApplication.IsExecuteMethodInCmd() || EditorUtility.DisplayDialog(mcClearAllAssetBundleName, "Are you sure 【" + mcClearAllAssetBundleName + "】?", "Yes", "No"))
     {
         EditorStrayFogExecute.ExecuteClearAllAssetBundleName();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcClearAllAssetBundleName);
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// DrawAssetNodes
 /// </summary>
 private void DrawAssetNodes()
 {
     EditorGUILayout.BeginHorizontal();
     if (GUILayout.Button("Build All AssetDiskMaping"))
     {
         EditorStrayFogExecute.ExecuteBuildAllAssetDiskMaping();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed("Build All AssetDiskMaping");
     }
     EditorGUILayout.EndHorizontal();
 }
Ejemplo n.º 9
0
 public static void EditorAssetBundleNameMenuItem_QueryAssetBundleAssetDiskMapingDataWindow()
 {
     if (Selection.activeObject != null)
     {
         EditorSelectionAssetDiskMaping asset = new EditorSelectionAssetDiskMaping(AssetDatabase.GetAssetPath(Selection.activeObject));
         asset.Resolve();
         string log = string.Format("{0}=>fileId:{1} folderId:{2}", Selection.activeObject, asset.fileId, asset.folderId);
         EditorStrayFogApplication.CopyToClipboard(log);
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcQueryAssetBundleAssetDiskMapingData);
         UnityEngine.Debug.Log(log);
     }
 }
 /// <summary>
 /// DrawAssetNodes
 /// </summary>
 private void DrawAssetNodes()
 {
     EditorGUILayout.BeginHorizontal();
     if (GUILayout.Button("Build Dynamic Dll"))
     {
         if (EditorStrayFogExecute.ExecuteBuildDynamicDll())
         {
             EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed("Build Dynamic Dll");
         }
         EditorStrayFogApplication.ExecuteMenu_AssetsRefresh();
     }
     EditorGUILayout.EndHorizontal();
 }
Ejemplo n.º 11
0
 static void EditorAssetBundleNameMenuItem_EditorWindowSetAssetBundleName()
 {
     if (EditorStrayFogApplication.IsExecuteMethodInCmd())
     {
         EditorStrayFogExecute.ExecuteSetAssetBundleName();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcSetAssetBundleName);
     }
     else
     {
         EditorWindowSetAssetBundleName win =
             EditorWindow.GetWindow <EditorWindowSetAssetBundleName>(mcSetAssetBundleName);
         win.Show();
     }
 }
 static void EditorAssetDiskMapingMenuItem_EditorWindowBuildAllAssetDiskMaping()
 {
     if (EditorStrayFogApplication.IsExecuteMethodInCmd())
     {
         EditorStrayFogExecute.ExecuteBuildAllAssetDiskMaping();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildAllAssetDiskMaping);
     }
     else
     {
         EditorWindowBuildAllAssetDiskMaping win =
             EditorWindow.GetWindow <EditorWindowBuildAllAssetDiskMaping>(mcBuildAllAssetDiskMaping);
         win.Show();
     }
 }
 static void EditorSpriteAtlasMenuItem_EditorWindowSetSpritePackingTag()
 {
     if (EditorStrayFogApplication.IsExecuteMethodInCmd())
     {
         EditorStrayFogExecute.ExecuteSetSpritePackingTag();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcSetSpritePackingTag);
     }
     else
     {
         EditorWindowSetSpritePackingTag win =
             EditorWindow.GetWindow <EditorWindowSetSpritePackingTag>(mcSetSpritePackingTag);
         win.Show();
     }
 }
Ejemplo n.º 14
0
 static void EditorAnimatorMenuItem_EditorWindowAnimatorControllerFMSMaping()
 {
     if (EditorStrayFogApplication.IsExecuteMethodInCmd())
     {
         EditorStrayFogExecute.ExecuteBuildAnimatorControllerFMSMaping();
         EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildAnimatorControllerFMSMaping);
     }
     else
     {
         EditorWindowAnimatorControllerFMSMaping win =
             EditorWindow.GetWindow <EditorWindowAnimatorControllerFMSMaping>(mcBuildAnimatorControllerFMSMaping);
         win.Show();
     }
 }
 /// <summary>
 /// OnGUI
 /// </summary>
 void OnGUI()
 {
     DrawAssets("【Exists】", mExistsConfigs, ref mScrollViewPositionExists);
     DrawAssets("【NoExists】", mNoExistsConfigs, ref mScrollViewPositionNoExists);
     if (mNoExistsConfigs.Count > 0 && GUILayout.Button("Create Assets"))
     {
         foreach (EditorEngineAssetConfig c in mNoExistsConfigs)
         {
             c.CreateAsset();
         }
         EditorUtility.DisplayDialog("Custom Asset ", "Create Asset success!", "OK");
         EditorStrayFogApplication.ExecuteMenu_AssetsRefresh();
         OnLoadConfigs();
     }
 }
Ejemplo n.º 16
0
 /// <summary>
 /// DrawBrower
 /// </summary>
 void DrawBrower()
 {
     EditorGUILayout.LabelField("XlsSchemaToSqlite Folders:");
     mConfig.DrawGUI();
     EditorGUILayout.Separator();
     EditorGUILayout.HelpBox(EditorStrayFogXLS.msrSeparateDescription, MessageType.None);
     if (GUILayout.Button("SQLiteDataType Code Sequence"))
     {
         EditorStrayFogApplication.CopyToClipboard(EditorStrayFogXLS.msrSQLiteDataTypeCodeSequence);
         Debug.Log(EditorStrayFogXLS.msrSQLiteDataTypeCodeSequence);
     }
     EditorGUILayout.Separator();
     if (GUILayout.Button("Load XLS"))
     {
         mXlsTableSchemas = EditorStrayFogXLS.ReadXlsSchema();
     }
     EditorGUILayout.Separator();
 }
Ejemplo n.º 17
0
    /// <summary>
    /// DrawAssetNodes
    /// </summary>
    private void DrawAssetNodes()
    {
        mScrollViewPosition = EditorGUILayout.BeginScrollView(mScrollViewPosition);
        for (int i = 0; i < mXlsTableSchemas.Count; i++)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(string.Format("{0}. 【{1}】{2}", (i + 1).PadLeft(mXlsTableSchemas.Count), mXlsTableSchemas[i].dbName, mXlsTableSchemas[i].tableName));

            if (GUILayout.Button("Setting"))
            {
                EditorStrayFogApplication.PingObject(mXlsTableSchemas[i].tableSchemaAssetPath);
            }

            mXlsTableSchemas[i].isDeterminant = EditorGUILayout.ToggleLeft("是否是行列式表", mXlsTableSchemas[i].isDeterminant);
            mXlsTableSchemas[i].canModifyData = EditorGUILayout.ToggleLeft("是否可修改数据", mXlsTableSchemas[i].canModifyData);

            EditorUtility.SetDirty(mXlsTableSchemas[i]);
            if (GUILayout.Button("Brower"))
            {
                EditorStrayFogApplication.PingObject(mXlsTableSchemas[i].fileName);
            }
            if (GUILayout.Button("Reveal"))
            {
                EditorStrayFogApplication.RevealInFinder(mXlsTableSchemas[i].fileName);
            }
            if (GUILayout.Button("Open"))
            {
                EditorStrayFogApplication.OpenFile(Path.GetFullPath(mXlsTableSchemas[i].fileName));
            }
            if (GUILayout.Button("Script"))
            {
                EditorStrayFogApplication.RevealInFinder(mXlsTableSchemas[i].scriptSqliteEntityFolder);
            }
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndScrollView();

        if (GUILayout.Button("Export Xls Schema To Sqlite"))
        {
            EditorStrayFogExecute.ExecuteExportXlsSchemaToSqlite();
            EditorUtility.DisplayDialog("XlsSchema", "ExecuteExportXlsSchemaToSqlite successed.", "OK");
        }
    }
Ejemplo n.º 18
0
    /// <summary>
    /// 创建脚本
    /// </summary>
    /// <param name="_viewScript">视图脚本</param>
    void OnCreateScript(EditorTextAssetConfig _viewScript)
    {
        if (!EditorStrayFogUtility.assetBundleName.IsIllegalFile(_viewScript.name))
        {
            bool   hasScript     = false;
            string hasScriptPath = string.Empty;
            if (mScriptConfig.paths != null && mScriptConfig.paths.Length > 0)
            {
                for (int i = 0; i < mScriptConfig.paths.Length; i++)
                {
                    mTempUIWindowViewScript.SetDirectory(
                        OnGetDirectory(mScriptConfig.paths[i], Path.GetFileName(_viewScript.directory)));
                    mTempUIWindowViewScript.SetName(_viewScript.name);
                    hasScript    |= File.Exists(mTempUIWindowViewScript.fileName);
                    hasScriptPath = mTempUIWindowViewScript.fileName;
                    if (hasScript)
                    {
                        break;
                    }
                }
            }

            if (hasScript)
            {
                EditorUtility.DisplayDialog("Exists Script",
                                            "The script 【" + _viewScript.name + "】 already exists in 【" + hasScriptPath + "】.",
                                            "OK");
            }
            else
            {
                string windowTemplate = EditorResxTemplete.UIWindowViewTemplete;
                windowTemplate = windowTemplate.Replace("#NAME#", _viewScript.name);
                _viewScript.SetText(windowTemplate);
                _viewScript.CreateAsset();
                EditorStrayFogApplication.ExecuteMenu_AssetsRefresh();
                EditorUtility.DisplayDialog("Create New Window Script", "Create window scripts is complete.", "OK");
            }
        }
        else
        {
            EditorUtility.DisplayDialog("Illegal Name", "Window Name is not legal.", "OK");
        }
    }
Ejemplo n.º 19
0
    /// <summary>
    /// 获得动态程序集组
    /// </summary>
    /// <returns>程序集组</returns>
    public static List <Assembly> GetDynamicAssemblies()
    {
        List <Assembly> assemblies = new List <Assembly>();
        string          dllExt     = typeof(enFileExt).GetAttributeForConstField <FileExtAttribute>(enFileExt.Dll).ext;

        if (mDynamicDlls == null)
        {
            mDynamicDlls = EditorStrayFogUtility.collectAsset.CollectAsset <EditorAssemblySelectionAsset>(
                new string[1] {
                EditorStrayFogApplication.TryRelativeToAssets("")
            }, "",
                enEditorDependencyClassify.UnClude, (n) => { return(n.ext.Equals(dllExt)); }, false);
        }
        List <Assembly> tempAssemblies = null;

        if (mDynamicDlls != null && mDynamicDlls.Count > 0)
        {
            foreach (EditorAssemblySelectionAsset d in mDynamicDlls)
            {
                try
                {
                    assemblies.Add(Assembly.LoadFrom(d.path));
                }
                catch (Exception ep)
                {
                    Debug.LogWarning(ep.Message);
                }
            }
        }
        tempAssemblies = GetApplicationAssembly();
        if (tempAssemblies != null)
        {
            assemblies.AddRange(tempAssemblies);
        }
        tempAssemblies = GetEditorApplicationAssembly();
        if (tempAssemblies != null)
        {
            assemblies.AddRange(tempAssemblies);
        }
        assemblies.Add(GetUnityEngineAssembly());
        assemblies.Add(GetUnityEditorAssembly());
        return(assemblies);
    }
Ejemplo n.º 20
0
 /// <summary>
 /// 绘制脚本宏定义符
 /// </summary>
 /// <param name="_macroDefineSymbol">宏定义符</param>
 public void EditorGUILayout_DrawMacroDefineSymbol(Dictionary <int, EditorMacroDefineSymbol> _macroDefineSymbol)
 {
     foreach (KeyValuePair <int, EditorMacroDefineSymbol> macro in _macroDefineSymbol)
     {
         EditorGUILayout.LabelField(string.Format("【{0}】{1}", macro.Value.type.Name, macro.Value.alias.alias, GUILayout.ExpandWidth(false)));
         foreach (EditorMacroDefineSymbol_Item define in macro.Value.defineMaping.Values)
         {
             EditorGUILayout.BeginHorizontal();
             define.isChecked = EditorGUILayout.ToggleLeft(
                 string.Format("{0}【{1}】", define.name, define.alias.alias), define.isChecked);
             if (GUILayout.Button(string.Format("Copy 【{0}】Define", define.alias.alias, GUILayout.ExpandWidth(false))))
             {
                 EditorStrayFogApplication.CopyToClipboard(define.name);
                 EditorUtility.DisplayDialog("Copy Define", "Copy Define " + define.name, "OK");
             }
             EditorGUILayout.EndHorizontal();
         }
         EditorStrayFogUtility.guiLayout.DrawSeparator();
     }
 }
Ejemplo n.º 21
0
    /// <summary>
    /// 加载宏定义符号
    /// </summary>
    /// <returns>核心宏定义符号</returns>
    public Dictionary <int, EditorMacroDefineSymbol> LoadMacroDefineScriptingDefineSymbols()
    {
        Dictionary <int, EditorMacroDefineSymbol> result = new Dictionary <int, EditorMacroDefineSymbol>();

        string[] defines = EditorStrayFogApplication.GetScriptingDefineSymbolsForGroup();
        Type     define  = typeof(EditorMacroDefineScriptingDefineSymbols);

        Type[] types = define.GetNestedTypes();
        if (types != null && types.Length > 0)
        {
            foreach (Type t in types)
            {
                EditorMacroDefineSymbol symbol = new EditorMacroDefineSymbol(t);
                if (!result.ContainsKey(symbol.key))
                {
                    result.Add(symbol.key, symbol);
                }
                symbol.SetCheckedFromPlayerSettings(defines);
            }
        }
        return(result);
    }
 /// <summary>
 /// 绘制资源
 /// </summary>
 /// <param name="_title">标题</param>
 /// <param name="_assets">资源</param>
 /// <param name="_scrollViewPosition">滚动视图位置</param>
 void DrawAssets(string _title, List <EditorEngineAssetConfig> _assets, ref Vector2 _scrollViewPosition)
 {
     if (_assets.Count > 0)
     {
         EditorGUILayout.LabelField(_title);
         _scrollViewPosition = EditorGUILayout.BeginScrollView(_scrollViewPosition);
         for (int i = 0; i < _assets.Count; i++)
         {
             EditorGUILayout.BeginHorizontal();
             EditorGUILayout.LabelField(
                 string.Format("{0}.{1}",
                               (i + 1).PadLeft(_assets.Count),
                               _assets[i].name
                               ));
             if (_assets[i].Exists() && GUILayout.Button("Browse"))
             {
                 EditorStrayFogApplication.PingObject(_assets[i].fileName);
             }
             EditorGUILayout.EndHorizontal();
         }
         EditorGUILayout.EndScrollView();
     }
 }
Ejemplo n.º 23
0
    /// <summary>
    /// OnGUI
    /// </summary>
    void OnGUI()
    {
        mNewAssetName = EditorGUILayout.TextField("资源名称", mNewAssetName);
        if (!string.IsNullOrEmpty(mNewAssetName.Trim()))
        {
            mScriptConfig.SetName(mNewAssetName);
            mAssetConfig.SetName(mNewAssetName);
            mAssetConfig.SetType(mNewAssetName);
            EditorGUILayout.LabelField("1." + mScriptConfig.fileName);
            EditorGUILayout.LabelField("2." + mAssetConfig.fileName);
            mScriptContent = mTxtScriptTemplete.Replace("#ClassName#", mNewAssetName);
            mScriptConfig.SetText(mScriptContent);
            EditorGUILayout.HelpBox(mScriptContent, MessageType.Info);

            if (File.Exists(mAssetConfig.fileName))
            {
                if (GUILayout.Button("Brower"))
                {
                    EditorStrayFogApplication.PingObject(mAssetConfig.fileName);
                }
            }
            else if (EditorStrayFogAssembly.IsExistsTypeInApplication(mNewAssetName))
            {
                if (GUILayout.Button("Create Asset"))
                {
                    mAssetConfig.CreateAsset();
                    EditorUtility.DisplayDialog("Custom Asset ", string.Format("Create Asset【{0}】success , path is '{1}'.", mAssetConfig.name, mAssetConfig.fileName), "OK");
                    EditorStrayFogApplication.ExecuteMenu_AssetsRefresh();
                }
            }
            else if (GUILayout.Button("Create Script"))
            {
                mScriptConfig.CreateAsset();
                EditorStrayFogApplication.ExecuteMenu_AssetsRefresh();
            }
        }
    }
Ejemplo n.º 24
0
 static void EditorQueryMenuItem_EditorWindowLookProjectSetting()
 {
     EditorStrayFogApplication.PingObject(enEditorApplicationFolder.Project_Resources.GetAttribute <EditorApplicationFolderAttribute>().path);
 }
 static void EditorShaderMenuItem_ExecuteBuildDefaultShader()
 {
     EditorStrayFogExecute.ExecuteBuildDefaultShader();
     EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildDefaultShader);
 }
Ejemplo n.º 26
0
 static void EditorAnimCurveMenuItem_EditorWindowBuildAnimCurves()
 {
     EditorStrayFogExecute.ExecuteBuildAnimCurves();
     EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildAnimCurves);
 }
    /// <summary>
    /// 绘制节点
    /// </summary>
    void DrawAssetNodes()
    {
        #region  mSearchWindowName 搜索
        mSearchWindowName = EditorGUILayout.TextField("Search Window Name", mSearchWindowName);
        #endregion
        EditorGUILayout.Separator();

        #region RenderMode 窗口绘制类别

        #region 批量选择
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Selected All RenderMode"))
        {
            AdjustRenderModeSelected(1);
        }
        if (GUILayout.Button("UnSelected All RenderMode"))
        {
            AdjustRenderModeSelected(-1);
        }
        if (GUILayout.Button("Reverse All RenderMode"))
        {
            AdjustRenderModeSelected(0);
        }
        EditorGUILayout.EndHorizontal();
        #endregion
        EditorGUILayout.Separator();

        #region 显示操作
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Window Render Mode", GUILayout.ExpandWidth(false));
        foreach (RenderMode rm in mRenderModes)
        {
            mSearchWindowRenderMode[(int)rm] = EditorGUILayout.ToggleLeft(rm.ToString(), mSearchWindowRenderMode[(int)rm], GUILayout.ExpandWidth(false));
        }
        EditorGUILayout.EndHorizontal();
        #endregion
        #endregion
        EditorGUILayout.Separator();

        #region enUIWindowLayer 窗口层级

        #region 批量选择
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Selected All Layer"))
        {
            AdjustWindowMinLayerSelected(1);
        }
        if (GUILayout.Button("UnSelected All Layer"))
        {
            AdjustWindowMinLayerSelected(-1);
        }
        if (GUILayout.Button("Reverse All Layer"))
        {
            AdjustWindowMinLayerSelected(0);
        }
        EditorGUILayout.EndHorizontal();
        #endregion
        EditorGUILayout.Separator();

        #region 显示操作
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Window Layer", GUILayout.ExpandWidth(false));
        mWindowMinLayerScrollViewPosition = EditorGUILayout.BeginScrollView(mWindowMinLayerScrollViewPosition, GUILayout.ExpandHeight(false));
        EditorGUILayout.BeginHorizontal();
        foreach (KeyValuePair <int, string> key in msrWindowMinLayerMaping)
        {
            mSearchWindowMinLayer[key.Key] = EditorGUILayout.ToggleLeft(key.Value, mSearchWindowMinLayer[key.Key], GUILayout.ExpandWidth(false));
        }
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndHorizontal();
        #endregion

        #endregion
        EditorGUILayout.Separator();

        #region isDraw 计算是否绘制
        if (mWindows != null && mWindows.Count > 0)
        {
            for (int i = 0; i < mWindows.Count; i++)
            {
                mWindows[i].isDraw =
                    //名称过滤
                    (string.IsNullOrEmpty(mSearchWindowName) || Regex.IsMatch(mWindows[i].nameWithoutExtension,
                                                                              string.Format(@"({0})+?\w*", mSearchWindowName.Replace(",", "|")), RegexOptions.IgnoreCase)) &&
                    //绘制类别过滤
                    mSearchWindowRenderMode[(int)mWindows[i].assetNode.renderMode] &&
                    //窗口最小Layer
                    mSearchWindowMinLayer[(int)mWindows[i].assetNode.layer];
            }
        }
        #endregion

        #region 绘制窗口属性列表
        mRemoveWindows.Clear();
        if (mWindows != null && mWindows.Count > 0)
        {
            mScrollViewPosition = EditorGUILayout.BeginScrollView(mScrollViewPosition);
            EditorGUILayout.BeginVertical();
            for (int i = 0; i < mWindows.Count; i++)
            {
                if (mWindows[i].isDraw)
                {
                    EditorGUILayout.BeginHorizontal();
                    #region 显示属性
                    EditorGUILayout.LabelField(
                        string.Format("{0}=>【{1}】{2}",
                                      string.Format("{0}.{1}", (i + 1).PadLeft(mWindows.Count), mWindows[i].nameWithoutExtension),
                                      mWindows[i].assetNode.renderMode.ToString(),
                                      msrWindowMinLayerMaping[(int)mWindows[i].assetNode.layer]
                                      )
                        );
                    #endregion
                    EditorGUILayout.EndHorizontal();

                    EditorGUILayout.BeginHorizontal();
                    #region Setting 按钮
                    if (GUILayout.Button("Setting"))
                    {
                        EditorStrayFogApplication.PingObject(mWindows[i].assetNode);
                    }
                    #endregion

                    #region Brower 按钮
                    if (GUILayout.Button("Brower"))
                    {
                        EditorStrayFogApplication.PingObject(mWindows[i].path);
                    }
                    #endregion

                    #region Select 按钮
                    if (GUILayout.Button("Select"))
                    {
                        mSearchWindowName = mWindows[i].nameWithoutExtension;
                    }
                    #endregion

                    #region Delete 按钮
                    if (GUILayout.Button("Delete"))
                    {
                        int delScriptIndex = -1;
                        if (EditorStrayFogSavedAssetConfig.setFolderConfigForUIWindowPrefab.paths != null && EditorStrayFogSavedAssetConfig.setFolderConfigForUIWindowPrefab.paths.Length > 0)
                        {
                            string path = Path.GetDirectoryName(mWindows[i].directory).TransPathSeparatorCharToUnityChar();
                            for (int p = 0; p < EditorStrayFogSavedAssetConfig.setFolderConfigForUIWindowPrefab.paths.Length; p++)
                            {
                                if (path.Equals(EditorStrayFogSavedAssetConfig.setFolderConfigForUIWindowPrefab.paths[i]))
                                {
                                    delScriptIndex = p;
                                    break;
                                }
                            }
                        }
                        if (delScriptIndex >= 0)
                        {
                            string delPrefabDirectory = mWindows[i].directory;
                            string delScriptDirectory = Path.Combine(EditorStrayFogSavedAssetConfig.setFolderConfigForUIWindowScript.paths[delScriptIndex], Path.GetFileName(mWindows[i].directory));
                            string delAssetPath       = AssetDatabase.GetAssetPath(mWindows[i].assetNode);
                            mSbInfo.Length = 0;
                            mSbInfo.AppendLine("Do you want to delete window ?");
                            mSbInfo.AppendLine(string.Format("Window =>{0}", mWindows[i].path));
                            mSbInfo.AppendLine("It will delete follow asset:");
                            mSbInfo.AppendLine(string.Format("1. Del Prefab Folder => {0}", delPrefabDirectory));
                            mSbInfo.AppendLine(string.Format("2. Del Script Folder => {0}", delScriptDirectory));
                            mSbInfo.AppendLine(string.Format("3. Del Asset => {0}", delAssetPath));
                            mSbInfo.AppendLine(string.Format("4. Del SQLite UIWindowSetting Where id={0}", mWindows[i].winId));
                            if (EditorUtility.DisplayDialog("Delete", mSbInfo.ToString(), "Yes", "No"))
                            {
                                mRemoveWindows.Add(i);
                                EditorStrayFogUtility.cmd.DeleteFolder(delPrefabDirectory);
                                EditorStrayFogUtility.cmd.DeleteFolder(delScriptDirectory);
                                File.Delete(delAssetPath);
                                EditorStrayFogXLS.DeleteUIWindowSetting(mWindows[i].winId);
                                break;
                            }
                        }
                    }
                    #endregion
                    EditorGUILayout.EndHorizontal();
                }
            }
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndScrollView();

            if (mRemoveWindows.Count > 0)
            {
                foreach (int index in mRemoveWindows)
                {
                    mWindows.RemoveAt(index);
                }
                BuilderWindowEnum();
            }
        }
        #endregion

        #region 显示窗口
        if (GUILayout.Button("Display UIWindow"))
        {
            mWindows = EditorStrayFogGlobalVariable.CollectUIWindowSettingAssets <EditorSelectionUIWindowSetting>();
        }
        #endregion

        #region 保存设置
        if (GUILayout.Button("Save Window Setting"))
        {
            BuilderWindowEnum();
        }
        #endregion
    }
Ejemplo n.º 28
0
 static void EditorReleaseMenuItem_ExecuteBuildAsmdefToPackage()
 {
     EditorStrayFogExecute.ExecuteBuildAsmdefToPackage();
     EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildAsmdefToPackage);
 }
Ejemplo n.º 29
0
 static void EditorReleaseMenuItem_ExecuteCopySQLiteDbToPackage()
 {
     EditorStrayFogExecute.ExecuteCopySQLiteDbToPackage();
     EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcCopySQLiteDbToPackage);
 }
Ejemplo n.º 30
0
 static void EditorReleaseMenuItem_ExecuteBuildAllXlsData()
 {
     EditorStrayFogExecute.ExecuteBuildAllXlsData();
     EditorStrayFogApplication.MenuItemQuickDisplayDialogSucceed(mcBuildAllXlsData);
 }