Beispiel #1
0
    /// <summary>
    /// 切换方案
    /// 由于自动打包会调用这里,所以将切换宏定义的代码也放在此处,注意!
    /// </summary>
    /// <param name="SchemeName"></param>
    public static void ChangeScheme(string SchemeName)
    {
        SchemeData data          = SDKManager.LoadGameSchemeConfig();
        string     oldSchemeName = "None";

        if (!IsExitsSchemeName(SchemeName))
        {
            Debug.Log("->" + SchemeName + "<- 方案不存在! ");
            return;
        }

        if (data != null)
        {
            oldSchemeName = data.SchemeName;
        }

        //方案相同不切换
        if (SchemeName == oldSchemeName)
        {
            return;
        }

        //重新生成游戏内使用的配置
        SaveGameSchemeConfig(GetSchemeData(SchemeName));

        if (IsExitsSchemeName(SchemeName))
        {
            Debug.Log("Index: " + GetSchemeIndex(SchemeName));

            //替换文件夹
            if (oldSchemeName != "None")
            {
                UnloadPluginFile(oldSchemeName);
                UnloadSchemeFile(oldSchemeName);
            }
            LoadPluginFile(SchemeName);
            LoadSchemeFile(SchemeName);

            //调整宏定义
            EditorExpand.ChangeDefine(new string[] { SchemeName }, new string[] { oldSchemeName });
        }
        else
        {
            //这部分代码实际上不会执行

            Debug.Log("不存在的方案名! " + SchemeName);
            if (oldSchemeName != "None")
            {
                //把当前方案收起来
                UnloadPluginFile(oldSchemeName);
                UnloadSchemeFile(oldSchemeName);

                //移除宏定义
                EditorExpand.ChangeDefine(new string[] {}, new string[] { oldSchemeName });
            }
        }

        AssetDatabase.Refresh();
    }
Beispiel #2
0
    void DelectScheme()
    {
        SchemeDataService.DelectScheme(m_currentSchemeData);

        //移除宏定义
        EditorExpand.ChangeDefine(new string[] { }, new string[] { m_currentSchemeData.SchemeName });

        m_currentSchemeData  = null;
        m_currentSelectIndex = GetCurrentSelectIndex();
    }
Beispiel #3
0
    private void DrawMapEditor()
    {
        GUILayout.Label(new GUIContent(" 地圖編輯", AssetDatabase.LoadAssetAtPath <Texture>("Assets/Editor/List.png")));
        if (GUILayout.Button("鎖圖層"))
        {
            EditorExpand.SetSortingLayerLocked(8, true);
        }
        GUILayout.BeginVertical("box");
        selGridInt = GUILayout.SelectionGrid(selGridInt, selStrings, 2);
        SerializedObject tagManager = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]);
        var i = tagManager.targetObjects[0].name;
        SerializedProperty tagsProp = tagManager.FindProperty("tags");

        GUILayout.EndVertical();
    }
Beispiel #4
0
    void CreateScheme(string SchemeName)
    {
        SchemeData data = SchemeDataService.AddScheme(SchemeName);

        //如果当前没有方案,则把新建的方案设为当前方案
        if (m_currentSchemeData == null)
        {
            m_currentSchemeData  = data;
            m_currentSelectIndex = GetCurrentSelectIndex();
            LoadSchemeData(m_currentSchemeData);

            SaveScheme();

            //设置宏定义
            EditorExpand.ChangeDefine(new string[] { SchemeName }, new string[] { });
        }
    }
Beispiel #5
0
    public static void CreatUIManager(Vector2 referenceResolution, CanvasScaler.ScreenMatchMode MatchMode, bool isOnlyUICamera, bool isVertical)
    {
        //新增五个层级
        EditorExpand.AddSortLayerIfNotExist("GameUI");
        EditorExpand.AddSortLayerIfNotExist("Fixed");
        EditorExpand.AddSortLayerIfNotExist("Normal");
        EditorExpand.AddSortLayerIfNotExist("TopBar");
        EditorExpand.AddSortLayerIfNotExist("PopUp");

        //UIManager
        GameObject UIManagerGo = new GameObject("UIManager");

        UIManagerGo.layer = LayerMask.NameToLayer("UI");
        UIManager UIManager = UIManagerGo.AddComponent <UIManager>();

        CreateUICamera(UIManager, "DefaultUI", 1, referenceResolution, MatchMode, isOnlyUICamera, isVertical);

        ProjectWindowUtil.ShowCreatedAsset(UIManagerGo);

        //保存UIManager
        ReSaveUIManager(UIManagerGo);
    }
    public static void InitGuideSystem()
    {
        if (!GetGuideIsInit())
        {
            //创建数据表
            SaveDataTable();

            //创建脚本
            CreateGuideWindowScript();

            //增加Guide引导层

            EditorExpand.AddSortLayerIfNotExist("Guide");

            //添加引导开关
            RecordManager.SaveRecord(GuideSystemBase.c_guideRecordName, GuideSystemBase.c_guideSwitchName, true);
        }
        else
        {
            Debug.Log("新手引导已经初始化");
        }
    }
    private void DrawMapEditor()
    {
        GUILayout.Label(new GUIContent(" 地圖編輯", AssetDatabase.LoadAssetAtPath <Texture>("Assets/Editor/List.png")));
        if (GUILayout.Button("鎖圖層"))
        {
            EditorExpand.SetSortingLayerLocked(8, true);
        }
        GUILayout.BeginVertical("box");
        selGridInt = GUILayout.SelectionGrid(selGridInt, selStrings, 2);
        SerializedObject tagManager = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]);
        var i = tagManager.targetObjects[0].name;
        SerializedProperty tagsProp = tagManager.FindProperty("tags");

        // GUILayout.BeginHorizontal("box");
        // MapMode = EditorGUILayout.BeginToggleGroup("aaa", MapMode);
        // MapMode = GUILayout.Toggle(MapMode, "Unity Font", (GUIStyle)"Radio");
        // bioMode = GUILayout.Toggle(bioMode, "Bitmap Font", (GUIStyle)"Radio");
        // EditorGUILayout.EndToggleGroup();
        // bioMode = EditorGUILayout.BeginToggleGroup("aaa", bioMode);
        // EditorGUILayout.EndToggleGroup();
        // GUILayout.EndHorizontal();
        GUILayout.EndVertical();
    }
Beispiel #8
0
    public static void CreatUI(string UIWindowName, string UIcameraKey, UIType UIType, UILayerManager UILayerManager, bool isAutoCreatePrefab)
    {
        GameObject uiGo = new GameObject(UIWindowName);

        Type         type      = EditorTool.GetType(UIWindowName);
        UIWindowBase uiBaseTmp = uiGo.AddComponent(type) as UIWindowBase;

        uiGo.layer = LayerMask.NameToLayer("UI");

        uiBaseTmp.m_UIType = UIType;

        Canvas canvas = uiGo.AddComponent <Canvas>();

        if (EditorExpand.isExistShortLayer(UIType.ToString()))
        {
            canvas.overrideSorting  = true;
            canvas.sortingLayerName = UIType.ToString();
        }

        uiGo.AddComponent <GraphicRaycaster>();

        RectTransform ui = uiGo.GetComponent <RectTransform>();

        ui.sizeDelta = Vector2.zero;
        ui.anchorMin = Vector2.zero;
        ui.anchorMax = Vector2.one;

        GameObject BgGo = new GameObject("BG");

        BgGo.layer = LayerMask.NameToLayer("UI");
        RectTransform Bg = BgGo.AddComponent <RectTransform>();

        Bg.SetParent(ui);
        Bg.sizeDelta = Vector2.zero;
        Bg.anchorMin = Vector2.zero;
        Bg.anchorMax = Vector2.one;

        GameObject rootGo = new GameObject("root");

        rootGo.layer = LayerMask.NameToLayer("UI");
        RectTransform root = rootGo.AddComponent <RectTransform>();

        root.SetParent(ui);
        root.sizeDelta = Vector2.zero;
        root.anchorMin = Vector2.zero;
        root.anchorMax = Vector2.one;

        uiBaseTmp.m_bgMask = BgGo;
        uiBaseTmp.m_uiRoot = rootGo;

        if (UILayerManager)
        {
            UILayerManager.SetLayer(uiBaseTmp);
        }

        if (isAutoCreatePrefab)
        {
            string Path = "Resources/UI/" + UIWindowName + "/" + UIWindowName + ".prefab";
            FileTool.CreatFilePath(Application.dataPath + "/" + Path);
            PrefabUtility.CreatePrefab("Assets/" + Path, uiGo, ReplacePrefabOptions.ConnectToPrefab);
        }

        ProjectWindowUtil.ShowCreatedAsset(uiGo);
    }
 public static void ShowAllMethod()
 {
     //增加Guide引导层
     EditorExpand.AddSortLayerIfNotExist("Guide");
 }
Beispiel #10
0
    public static void CreatUIManager(Vector2 referenceResolution, CanvasScaler.ScreenMatchMode MatchMode, bool isOnlyUICamera, bool isVertical)
    {
        //新增五个层级
        EditorExpand.AddSortLayerIfNotExist("GameUI");
        EditorExpand.AddSortLayerIfNotExist("Fixed");
        EditorExpand.AddSortLayerIfNotExist("Normal");
        EditorExpand.AddSortLayerIfNotExist("TopBar");
        EditorExpand.AddSortLayerIfNotExist("PopUp");

        //UIManager
        GameObject UIManagerGo = new GameObject("UIManager");

        UIManagerGo.layer = LayerMask.NameToLayer("UI");
        //UIManager UIManager = UIManagerGo.AddComponent<UIManager>();
        UIManagerGo.AddComponent <UIManager>();

        //UIcamera
        GameObject cameraGo = new GameObject("UICamera");

        cameraGo.transform.SetParent(UIManagerGo.transform);
        cameraGo.transform.localPosition = new Vector3(0, 0, -1000);
        Camera camera = cameraGo.AddComponent <Camera>();

        camera.cullingMask  = LayerMask.GetMask("UI");
        camera.orthographic = true;
        if (!isOnlyUICamera)
        {
            camera.clearFlags = CameraClearFlags.Depth;
            camera.depth      = 1;
        }
        else
        {
            camera.clearFlags      = CameraClearFlags.SolidColor;
            camera.backgroundColor = Color.black;
        }

        //Canvas
        Canvas canvas = UIManagerGo.AddComponent <Canvas>();

        canvas.renderMode  = RenderMode.ScreenSpaceCamera;
        canvas.worldCamera = camera;

        //UI Raycaster
        //GraphicRaycaster Graphic = UIManagerGo.AddComponent<GraphicRaycaster>();
        UIManagerGo.AddComponent <GraphicRaycaster>();

        //CanvasScaler
        CanvasScaler scaler = UIManagerGo.AddComponent <CanvasScaler>();

        scaler.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
        scaler.referenceResolution = referenceResolution;
        scaler.screenMatchMode     = MatchMode;

        if (isVertical)
        {
            scaler.matchWidthOrHeight = 1;
        }
        else
        {
            scaler.matchWidthOrHeight = 0;
        }

        //挂载点
        GameObject     goTmp    = null;
        RectTransform  rtTmp    = null;
        UILayerManager layerTmp = UIManagerGo.GetComponent <UILayerManager>();

        goTmp       = new GameObject("GameUI");
        goTmp.layer = LayerMask.NameToLayer("UI");
        goTmp.transform.SetParent(UIManagerGo.transform);
        goTmp.transform.localScale = Vector3.one;
        rtTmp                        = goTmp.AddComponent <RectTransform>();
        rtTmp.anchorMax              = new Vector2(1, 1);
        rtTmp.anchorMin              = new Vector2(0, 0);
        rtTmp.anchoredPosition3D     = Vector3.zero;
        rtTmp.sizeDelta              = Vector2.zero;
        layerTmp.m_GameUILayerParent = goTmp.transform;

        goTmp       = new GameObject("Fixed");
        goTmp.layer = LayerMask.NameToLayer("UI");
        goTmp.transform.SetParent(UIManagerGo.transform);
        goTmp.transform.localScale = Vector3.one;
        rtTmp                       = goTmp.AddComponent <RectTransform>();
        rtTmp.anchorMax             = new Vector2(1, 1);
        rtTmp.anchorMin             = new Vector2(0, 0);
        rtTmp.anchoredPosition3D    = Vector3.zero;
        rtTmp.sizeDelta             = Vector2.zero;
        layerTmp.m_FixedLayerParent = goTmp.transform;

        goTmp       = new GameObject("Normal");
        goTmp.layer = LayerMask.NameToLayer("UI");
        goTmp.transform.SetParent(UIManagerGo.transform);
        goTmp.transform.localScale = Vector3.one;
        rtTmp                        = goTmp.AddComponent <RectTransform>();
        rtTmp.anchorMax              = new Vector2(1, 1);
        rtTmp.anchorMin              = new Vector2(0, 0);
        rtTmp.anchoredPosition3D     = Vector3.zero;
        rtTmp.sizeDelta              = Vector2.zero;
        layerTmp.m_NormalLayerParent = goTmp.transform;

        goTmp       = new GameObject("TopBar");
        goTmp.layer = LayerMask.NameToLayer("UI");
        goTmp.transform.SetParent(UIManagerGo.transform);
        goTmp.transform.localScale = Vector3.one;
        rtTmp                        = goTmp.AddComponent <RectTransform>();
        rtTmp.anchorMax              = new Vector2(1, 1);
        rtTmp.anchorMin              = new Vector2(0, 0);
        rtTmp.anchoredPosition3D     = Vector3.zero;
        rtTmp.sizeDelta              = Vector2.zero;
        layerTmp.m_TopbarLayerParent = goTmp.transform;

        goTmp       = new GameObject("PopUp");
        goTmp.layer = LayerMask.NameToLayer("UI");
        goTmp.transform.SetParent(UIManagerGo.transform);
        goTmp.transform.localScale = Vector3.one;
        rtTmp                       = goTmp.AddComponent <RectTransform>();
        rtTmp.anchorMax             = new Vector2(1, 1);
        rtTmp.anchorMin             = new Vector2(0, 0);
        rtTmp.anchoredPosition3D    = Vector3.zero;
        rtTmp.sizeDelta             = Vector2.zero;
        layerTmp.m_PopUpLayerParent = goTmp.transform;
        //m_UILayerManager = layerTmp;

        ProjectWindowUtil.ShowCreatedAsset(UIManagerGo);

        string Path = "Resources/UI/UIManager.prefab";

        FileTool.CreatFilePath(Application.dataPath + "/" + Path);
        PrefabUtility.CreatePrefab("Assets/" + Path, UIManagerGo, ReplacePrefabOptions.ConnectToPrefab);
    }