Esempio n. 1
0
 /// <summary>
 /// 创建脚本
 /// </summary>
 private static void UiPanelAddScripts()
 {
     formConfig = LabTools.GetConfig <UIFormConfig>(false, "/StreamingAssets/GameData/");
     foreach (var item in formConfig.PanleKeys)
     {
         BuildClass(item.Key);
     }
 }
Esempio n. 2
0
        private static void Setup()
        {
            formConfig = LabTools.GetConfig <UIFormConfig>(false, "/StreamingAssets/GameData/");
            Debug.Log("生成UI");
            Path = new Dictionary <string, string>();
            #region 生成UIRoot
            var UIRoot = new GameObject("UiRoot");
            UIRoot.AddComponent <UIController>();
            UIRoot.layer = LayerMask.NameToLayer("UI");
            #endregion

            #region 生成Canvas
            var UICanvas = new GameObject("Canvas");
            UICanvas.transform.SetParent(UIRoot.transform);
            UICanvas.AddComponent <Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
            var canvasScaler = UICanvas.AddComponent <CanvasScaler>();
            canvasScaler.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
            canvasScaler.referenceResolution = new Vector2(1920, 1080);
            UICanvas.AddComponent <GraphicRaycaster>();
            UICanvas.layer = LayerMask.NameToLayer("UI");
            #endregion

            #region 生成EventSystem
            var eventSystem = new GameObject("EventSystem");
            eventSystem.transform.SetParent(UIRoot.transform);
            eventSystem.AddComponent <EventSystem>();
            eventSystem.AddComponent <StandaloneInputModule>();
            eventSystem.layer = LayerMask.NameToLayer("UI");
            #endregion

            #region 生成Panle 根据配置表来,每生成一个都需要做成预设体
            foreach (var item in formConfig.PanleKeys)
            {
                GameObject PanleObject = Instantiate(Resources.Load("UiFrameWorkPrefabs/Panel")) as GameObject;

                PanleObject.gameObject.name = item.Key;
                PanleObject.transform.SetParent(UICanvas.transform, false);
                PanleObject.gameObject.AddComponent(LabTools.GetScriptType(item.Key));
                foreach (PanleData.Data Data in item.Value)
                {
                    GameObject UiObject = Instantiate(Resources.Load("UiFrameWorkPrefabs/" + Data.UIFormName)) as GameObject;
                    UiObject.name = Data.UIObjectName;
                    UiObject.transform.SetParent(PanleObject.transform);
                    UiObject.transform.localPosition = new Vector3(0, 0, 0);
                }


                WriteFolder(Application.dataPath + "/Resources/" + "UiPanlePrefabs/");

                var Folder = Application.dataPath + "/Resources/" + "UiPanlePrefabs/";

                string FindPrefabsPath = "UiPanlePrefabs/" + item.Key;

                Path.Add(item.Key, FindPrefabsPath);

                var FilePath = Folder + item.Key + ".prefab";

                PrefabUtility.SaveAsPrefabAsset(PanleObject, FilePath);

                DestroyImmediate(PanleObject, false);
            }
            #endregion

            WriteFolder(Application.dataPath + "/StreamingAssets/GameData/" + "PanleDatas/");
            PanleDatas panleDatas = new PanleDatas();
            panleDatas.PanelValue = Path;
            LabTools.WriteData(panleDatas, "Panle", true, "/StreamingAssets/GameData/");
            WriteFolder(Application.dataPath + "/Resources/" + "UiRoot/");

            var savedFilePath = Application.dataPath + "/Resources/" + "UiRoot/" + "UIRoot.prefab";

            PrefabUtility.SaveAsPrefabAssetAndConnect(UIRoot, savedFilePath, InteractionMode.AutomatedAction);
        }