示例#1
0
 /// <summary>
 /// 界面初始化
 /// </summary>
 /// <param name="uiForm">真正的UI窗口</param>
 /// <param name="userData">用户数据</param>
 public override void OnInit(HotfixForm uiForm, object userData)
 {
     base.OnInit(uiForm, userData);
     btnToLogOn           = uiForm.GetTransType(0) as Button;
     imgMiaoShu1          = uiForm.GetTransType(1) as Image;
     imgMiaoShu2          = uiForm.GetTransType(2) as Image;
     btnDeleteRole        = uiForm.GetTransType(3) as Button;
     btnStart             = uiForm.GetTransType(4) as Button;
     RoleItemView1        = uiForm.GetTransType(5) as Transform;
     RoleItemView2        = uiForm.GetTransType(6) as Transform;
     RoleItemView3        = uiForm.GetTransType(7) as Transform;
     RoleItemView4        = uiForm.GetTransType(8) as Transform;
     ButtonCreateRole1    = uiForm.GetTransType(9) as Button;
     ButtonCreateRole2    = uiForm.GetTransType(10) as Button;
     ButtonCreateRole3    = uiForm.GetTransType(11) as Button;
     ButtonCreateRole4    = uiForm.GetTransType(12) as Button;
     m_SelectRoleFormCtrl = new SelectRoleFormCtrl();
     m_SelectRoleFormCtrl.OnInit(this, userData);
 }
示例#2
0
 /// <summary>
 /// 界面初始化
 /// </summary>
 /// <param name="uiForm">真正的UI窗口</param>
 /// <param name="userData">用户数据</param>
 public override void OnInit(HotfixForm uiForm, object userData)
 {
     base.OnInit(uiForm, userData);
     UnityEngine.Debug.Log("初始化UI");
     Text = uiForm.GetTransType(0) as Text;
 }
示例#3
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
            {
                HotfixForm t = (HotfixForm)target;

                GUILayout.BeginVertical("box");
                {
                    GUILayout.BeginHorizontal("box");
                    {
                        GUILayout.Space(30);

                        GUILayout.Label("Notes", GUILayout.MaxWidth(150));
                        GUILayout.Label("Name", GUILayout.MaxWidth(150));
                        GUILayout.Label("Widget", GUILayout.MinWidth(80));
                        GUILayout.Label("GameObjectType");
                    }
                    GUILayout.EndHorizontal();

                    remove = false;
                    add    = false;
                    change = false;

                    DrawAllHotFormInfo();

                    GUI.backgroundColor = blueColor;
                }
                GUILayout.EndVertical();

                EditorGUILayout.Separator();

                GUILayout.BeginHorizontal("box");
                {
                    if (GUILayout.Button("+", GUILayout.Width(20f), GUILayout.Height(16f)))
                    {
                        add = true;
                    }
                    m_AddTransform = (Transform)EditorGUILayout.ObjectField(m_AddTransform, typeof(Transform), true, GUILayout.MinWidth(100f));
                }
                GUILayout.EndHorizontal();

                if (remove)
                {
                    m_CurrentHotFormInfos.RemoveAt(removeId);
                    DrawAllHotFormInfo();
                    change = true;
                }

                if (add)
                {
                    AddItem();
                    change = true;
                }

                if (change)
                {
                    WriteHotFormInfo();
                }
                GUI.backgroundColor = Color.white;
            }
            EditorGUI.EndDisabledGroup();

            serializedObject.ApplyModifiedProperties();
            Repaint();
        }
示例#4
0
 /// <summary>
 /// 界面初始化
 /// </summary>
 /// <param name="uiForm">真正的UI窗口</param>
 /// <param name="userData">用户数据</param>
 public virtual void OnInit(HotfixForm uiForm, object userData)
 {
     m_UIForm = uiForm;
 }
示例#5
0
        static void CreateTempUIForm()
        {
            if (Selection.transforms.Length == 0)
            {
                return;
            }

            Transform trans = Selection.transforms[0];

            HotfixForm hotfixForm = trans.GetComponent <HotfixForm>();

            if (hotfixForm == null)
            {
                Debug.LogError("该UI上没有HotfixForm脚本");
                return;
            }

            string viewName = trans.gameObject.name;

            HotFormInfo[] hotFormInfos = hotfixForm.HotFormInfos;

            int len = hotFormInfos.Length;

            StringBuilder sbr = new StringBuilder();

            sbr.Append("using UnityEngine;\r\n");
            sbr.Append("using UnityEngine.UI;\r\n");
            sbr.Append("using ZJY.Framework;\r\n");
            sbr.Append("\r\n");
            sbr.Append("namespace Hotfix\r\n");
            sbr.Append("{\r\n");
            sbr.AppendFormat("    public class {0}View : HotUIForm\r\n", viewName);
            sbr.Append("    {\r\n");

            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 窗口控制器\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.AppendFormat("        private {0}Ctrl m_{0}Ctrl;\r\n", viewName);
            sbr.Append("\r\n");

            sbr.Append("        #region 组件\r\n");
            for (int i = 0; i < len; i++)
            {
                HotFormInfo hotFormInfo = hotFormInfos[i];
                sbr.Append("        /// <summary>\r\n");
                sbr.AppendFormat("        /// {0}\r\n", hotFormInfo.Name);
                sbr.Append("        /// </summary>\r\n");
                if (hotFormInfo.HotAttributeType == HotAttributeType.Unknow)
                {
                    sbr.AppendFormat("        public {0} {1}\r\n", "Transform", hotFormInfo.Trans.name);
                }
                else
                {
                    sbr.AppendFormat("        public {0} {1}\r\n", hotFormInfo.HotAttributeType.ToString(), hotFormInfo.Trans.name);
                }

                sbr.Append("        {\r\n");
                sbr.Append("            get;\r\n");
                sbr.Append("            private set;\r\n");
                sbr.Append("        }\r\n");
                sbr.Append("\r\n");
            }
            sbr.Append("        #endregion\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面初始化\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"uiForm\">真正的UI窗口</param>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public override void OnInit(HotfixForm uiForm, object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnInit(uiForm, userData);\r\n");

            for (int i = 0; i < len; i++)
            {
                HotFormInfo hotFormInfo = hotFormInfos[i];
                if (hotFormInfo.HotAttributeType == HotAttributeType.Unknow)
                {
                    sbr.AppendFormat("            {0} = uiForm.GetTransType({1}) as {2};\r\n", hotFormInfo.TransformName.ToString(), i.ToString(), "Transform");
                }
                else
                {
                    sbr.AppendFormat("            {0} = uiForm.GetTransType({1}) as {2};\r\n", hotFormInfo.TransformName.ToString(), i.ToString(), hotFormInfo.HotAttributeType.ToString());
                }
            }

            sbr.AppendFormat("            m_{0}Ctrl = new {0}Ctrl();\r\n", viewName);
            sbr.AppendFormat("            m_{0}Ctrl.OnInit(this, userData);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面打开\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public override void OnOpen(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnOpen(userData);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnOpen(userData);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面关闭\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public override void OnClose(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnClose(userData);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnClose(userData);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面暂停\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        public override void OnPause()\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnPause();\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnPause();\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面暂停恢复\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public override void OnResume(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnResume(userData);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnResume(userData);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面遮挡\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public override void OnCover(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnCover(userData);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnCover(userData);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面遮挡恢复\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        public override void OnReveal()\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnReveal();\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnReveal();\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面激活\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public override void OnRefocus(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnRefocus(userData);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnRefocus(userData);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面轮询\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"deltaTime\">逻辑流逝时间,以秒为单位</param>\r\n");
            sbr.Append("        /// <param name=\"unscaledDeltaTime\">真实流逝时间,以秒为单位</param>\r\n");
            sbr.Append("        public override void OnUpdate(float deltaTime, float unscaledDeltaTime)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnUpdate(deltaTime, unscaledDeltaTime);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnUpdate(deltaTime, unscaledDeltaTime);\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面深度改变\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"uiGroupDepth\">界面组深度</param>\r\n");
            sbr.Append("        /// <param name=\"depthInUIGroup\">界面在界面组中的深度</param>\r\n");
            sbr.Append("        public override void OnDepthChanged(int uiGroupDepth, int depthInUIGroup)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("            base.OnDepthChanged(uiGroupDepth, depthInUIGroup);\r\n");
            sbr.AppendFormat("            m_{0}Ctrl.OnDepthChanged(uiGroupDepth, depthInUIGroup);\r\n", viewName);
            sbr.Append("        }\r\n");
            sbr.Append("    }\r\n");
            sbr.Append("}\r\n");

            string viewpath = Application.dataPath + "/../Hotfix/Module/UI/Temp/" + viewName + "View.cs";

            using (FileStream fs = new FileStream(viewpath, FileMode.Create))
            {
                using (StreamWriter sw = new StreamWriter(fs))
                {
                    sw.Write(sbr.ToString());
                }
            }

            sbr.Length = 0;
            sbr.Append("using UnityEngine;\r\n");
            sbr.Append("using UnityEngine.UI;\r\n");
            sbr.Append("using ZJY.Framework;\r\n");
            sbr.Append("\r\n");
            sbr.Append("namespace Hotfix\r\n");
            sbr.Append("{\r\n");
            sbr.AppendFormat("    public class {0}Ctrl\r\n", viewName);
            sbr.Append("    {\r\n");

            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 控制的窗口\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.AppendFormat("        private {0}View m_{0}View;\r\n", viewName);

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面初始化\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"view\">控制的窗口</param>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.AppendFormat("        public void OnInit({0}View view, object userData)\r\n", viewName);
            sbr.Append("        {\r\n");
            sbr.AppendFormat("            m_{0}View = view;\r\n", viewName);
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面打开\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public void OnOpen(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面关闭\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public void OnClose(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面暂停\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        public void OnPause()\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面暂停恢复\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public void OnResume(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面遮挡\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public void OnCover(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面遮挡恢复\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        public void OnReveal()\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面激活\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"userData\">用户数据</param>\r\n");
            sbr.Append("        public void OnRefocus(object userData)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面轮询\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"deltaTime\">逻辑流逝时间,以秒为单位</param>\r\n");
            sbr.Append("        /// <param name=\"unscaledDeltaTime\">真实流逝时间,以秒为单位</param>\r\n");
            sbr.Append("        public void OnUpdate(float deltaTime, float unscaledDeltaTime)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");

            sbr.Append("\r\n");
            sbr.Append("        /// <summary>\r\n");
            sbr.Append("        /// 界面深度改变\r\n");
            sbr.Append("        /// </summary>\r\n");
            sbr.Append("        /// <param name=\"uiGroupDepth\">界面组深度</param>\r\n");
            sbr.Append("        /// <param name=\"depthInUIGroup\">界面在界面组中的深度</param>\r\n");
            sbr.Append("        public void OnDepthChanged(int uiGroupDepth, int depthInUIGroup)\r\n");
            sbr.Append("        {\r\n");
            sbr.Append("        }\r\n");
            sbr.Append("    }\r\n");
            sbr.Append("}\r\n");

            string ctrlpath = Application.dataPath + "/../Hotfix/Module/UI/Temp/" + viewName + "Ctrl.cs";

            using (FileStream fs = new FileStream(ctrlpath, FileMode.Create))
            {
                using (StreamWriter sw = new StreamWriter(fs))
                {
                    sw.Write(sbr.ToString());
                }
            }

            UnityEditor.EditorUtility.DisplayDialog("Create view & ctrl", "Create Temp View And Ctrl OK!", "OK");
        }