美文网首页
Unity Http通信+MVC

Unity Http通信+MVC

作者: 玄策丶 | 来源:发表于2023-01-05 17:58 被阅读0次

    1.M层

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class ModelCloth : SingletonMono<ModelCloth>
    {
        public ClothMsg data = new ClothMsg(); //布料查询数据
    }
    public class ClothMsg
    {
        public List<ClothOne> listCloth = new List<ClothOne>(); //单个面料所有信息
    }
    public class ClothOne
    {
        public string name;
        public string value;
    }
    

    2.C层
    (1)接收数据

    using LitJson;
    using System.Collections;
    using System.Collections.Generic;
    using System.Text;
    using UnityEngine;
    using UnityEngine.Networking;
    public class HttpGetMsgController_MLK : MonoBehaviour
    {
        string strUrl_Cloth = "WebService.asmx/getmaterialbyid";
        private void Awake()
        {
            Instance = this;
        }
        /// <summary>
        /// 布匹信息接收,面料查询
        /// </summary>
        /// <returns></returns>
        public IEnumerator PostCloth(string id)
        {
            string url = AppConfig.HttpURL + strUrl_Cloth;
    
            JsonData data = new JsonData();
            data["key"] = AppConfig.Key;
            data["id"] = id;
            byte[] postBytes = System.Text.Encoding.Default.GetBytes(data.ToJson());
    
            UnityWebRequest request = new UnityWebRequest(url, "POST");
    
            request.uploadHandler = (UploadHandler)new UploadHandlerRaw(postBytes);
            request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
            request.SetRequestHeader("Content-Type", "application/json");
            yield return request.SendWebRequest();
            if (request.isNetworkError || request.isHttpError)
            {
                Debug.LogError(request.error);
            }
            else
            {
                //Debug.Log(request.downloadHandler.text);
                HttpGetMsgHandle_MLK.Instance.AllClothHandle(request.downloadHandler.text);
            }
        }
    }
    

    (2)处理数据

    using LitJson;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Networking;
    using UnityEngine.UI;
    public class HttpGetMsgHandle_MLK : SingletonMono<HttpGetMsgHandle_MLK>
    {
        /// <summary>
        /// 布匹信息处理
        /// </summary>
        /// <param name="str"></param>
        public void AllClothHandle(string str)
        {
            try
            {
                JsonData jsonData = JsonMapper.ToObject(str);
                if (jsonData.Count < 1)
                {
                    return;
                }
    
                ModelCloth.Instance.data.listCloth.Clear();
                for (int i = 0; i < jsonData["data"].Count; i++)
                {
                    ClothOne clothOne = new ClothOne();
                    clothOne.name = EcpMsg(jsonData["data"][i]["name"]);
                    clothOne.value = EcpMsg(jsonData["data"][i]["value"]);
    
                    ModelCloth.Instance.data.listCloth.Add(clothOne);
                }
                //view显示 数据
                ViewCloth.Instance.SetClothMsg(ModelCloth.Instance.data);
            }
            catch (System.Exception ex)
            {
                Debug.Log(ex);
            }
        }
    
    
        /// <summary>
        /// 将string转换为int
        /// </summary>
        /// <param name="field"></param>
        /// <returns></returns>
        int TransformationToInt(string field)
        {
            int tempNum = 0;
            try
            {
                tempNum = int.Parse(field);
            }
            catch (Exception)
            {
    
            }
            return tempNum;
        }
        /// <summary>
        /// 将string转换为float
        /// </summary>
        /// <param name="field"></param>
        /// <returns></returns>
        float TransformationToFloat(string field)
        {
            float tempNum = 0f;
            try
            {
                tempNum = float.Parse(field);
            }
            catch (Exception)
            {
    
            }
            return tempNum;
        }
        /// <summary>
        /// 将json数据转换为string
        /// </summary>
        /// <param name="jsonData"></param>
        /// <returns></returns>
        string EcpMsg(JsonData jsonData)
        {
            try
            {
                if (jsonData == null)
                {
                    return "";
                }
                else
                {
                    return jsonData.ToString();
                }
            }
            catch (Exception)
            {
                return "";
            }
        }
    
        //判断是否含有某字段
        public bool CheckParam(JsonData Json, string KeyName)
        {
            bool res = false;
            //判断是否有key
            if (((IDictionary)Json).Contains(KeyName))
            {
                //string valuestr = (string)Json[KeyName];
                res = true;
            }
    
            return res;
        }
    }
    
    

    3.V层

    /***********************
    * 遇见你的眉眼,如清风明月。
    * Title:        
    * Date:         2021
    * Author:       玄策
    * UnityVersion: 2019.2.4f1
    * Func:           
    * -   
    ***********************/
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    public class ViewCloth : SingletonMono<ViewCloth>
    {
        Transform Image_Cloth;
    
        public string str_ClothName; //面料按名字查询
    
        Text TextName;      //面料名称
        Text TextLocation;  //库位
        Text TextGH;        //缸号
        Text TextID;        //面料号
        Text TextUnit;      //单位
        Text TextMS;        //米数
        Text TextTXM;       //条形码
        Text TextDate;      //入库日期
        Text TextGYS;       //供应商
        Text TextCount;     //数量
        Text TextDWXS;      //单位系数
        Text TextFee;       //合计
    
        Button Btn_Search; //在库查询按钮
    
        private new void Awake()
        {
            Image_Cloth = GameObject.Find("Canvas").transform.Find("Image_Cloth");
            TextName = Image_Cloth.Find("TextName").GetComponent<Text>();
            TextLocation = Image_Cloth.Find("TextLocation").GetComponent<Text>();
            TextGH = Image_Cloth.Find("TextGH").GetComponent<Text>();
            TextID = Image_Cloth.Find("TextID").GetComponent<Text>();
            TextUnit = Image_Cloth.Find("TextUnit").GetComponent<Text>();
            TextMS = Image_Cloth.Find("TextMS").GetComponent<Text>();
            TextTXM = Image_Cloth.Find("TextTXM").GetComponent<Text>();
            TextDate = Image_Cloth.Find("TextDate").GetComponent<Text>();
            TextGYS = Image_Cloth.Find("TextGYS").GetComponent<Text>();
            TextCount = Image_Cloth.Find("TextCount").GetComponent<Text>();
            TextDWXS = Image_Cloth.Find("TextDWXS").GetComponent<Text>();
            TextFee = Image_Cloth.Find("TextFee").GetComponent<Text>();
    
            Btn_Search = Image_Cloth.Find("Button_Search").GetComponent<Button>();
    
        }
        void Start()
        {
            
            //在库查询按钮点击
            Btn_Search.onClick.AddListener(() =>
            {
                Image_Cloth.gameObject.SetActive(false);
    
                //调用网页端页面
                UIManager.Instance.browser.CallFunction("mlZkcx ", str_ClothName).Done();
                UIManager.Instance.ShowSearchMsg();
            });
        }
    
        public void SetClothMsg(ClothMsg msg)
        {
            TextName.text = msg.listCloth[0].name + ":";
            TextName.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[0].value;
    
            TextLocation.text = msg.listCloth[2].name + ":";
            TextLocation.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[2].value;
    
            TextGH.text = msg.listCloth[4].name + ":";
            TextGH.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[4].value;
    
            TextID.text = msg.listCloth[6].name + " : ";
            TextID.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[6].value;
    
            TextUnit.text = msg.listCloth[8].name + " : ";
            TextUnit.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[8].value;
    
            TextMS.text = msg.listCloth[10].name + " : ";
            TextMS.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[10].value;
    
            TextTXM.text = msg.listCloth[1].name + " : ";
            TextTXM.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[1].value;
    
            TextDate.text = msg.listCloth[3].name + " : ";
            TextDate.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[3].value;
    
            TextGYS.text = msg.listCloth[5].name + " : ";
            TextGYS.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[5].value;
    
            TextCount.text = msg.listCloth[7].name + " : ";
            TextCount.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[7].value;
    
            TextDWXS.text = msg.listCloth[9].name + " : ";
            TextDWXS.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[9].value;
    
            TextFee.text = msg.listCloth[11].name + " : ";
            TextFee.transform.Find("Text").GetComponent<Text>().text = msg.listCloth[11].value;
    
    
            Image_Cloth.gameObject.SetActive(true);
            Image_Cloth.position = Input.mousePosition;
        }
    }
    

    4.Click

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using HighlightPlus;
    using UnityEngine.EventSystems;
    
    public class ClothClick : MonoBehaviour
    {
        public string cloth_ID; //布料id
        public string cloth_Name; //布料名字
        public string Cloth_ID { get => cloth_ID; set => cloth_ID = value; }
        public string Cloth_Name { get => cloth_Name; set => cloth_Name = value; }
    
        private void OnMouseUpAsButton()
        {
            if (ZheDang.Instance.CheckGuiRaycastObjects())
            {
                return;
            }
            if (EventSystem.current.IsPointerOverGameObject() == true)
            {
                return;
            }
            if (!LeftCamsChange.Instance.isMouse)
            {
                return;
            }
            if (AppConfig.ReadSelfMsg)
            {
                //测试
                ClothOne clothOne = new ClothOne();
                clothOne.name = "面料名称";
                clothOne.value = "YB-2342单面布";
                ClothOne clothOne1 = new ClothOne();
                clothOne1.name = "条形码";
                clothOne1.value = "200293";
                ClothOne clothOne2 = new ClothOne();
                clothOne2.name = "库   位";
                clothOne2.value = "A1-2";
                ClothOne clothOne3 = new ClothOne();
                clothOne3.name = "入库时间";
                clothOne3.value = "2021-01-14";
                ClothOne clothOne4 = new ClothOne();
                clothOne4.name = "缸   号";
                clothOne4.value = "Y191217017";
                ClothOne clothOne5 = new ClothOne();
                clothOne5.name = "供应商";
                clothOne5.value = "烟台业林";
                ClothOne clothOne6 = new ClothOne();
                clothOne6.name = "面料号";
                clothOne6.value = "YL005267ZGF-YH4#";
                ClothOne clothOne7 = new ClothOne();
                clothOne7.name = "数   量";
                clothOne7.value = "42.7000";
                ClothOne clothOne8 = new ClothOne();
                clothOne8.name = "单   位";
                clothOne8.value = "米";
                ClothOne clothOne9 = new ClothOne();
                clothOne9.name = "系   数";
                clothOne9.value = "1.0";
                ClothOne clothOne10 = new ClothOne();
                clothOne10.name = "米   数";
                clothOne10.value = "42.7";
                ClothOne clothOne11 = new ClothOne();
                clothOne11.name = "合   计";
                clothOne11.value = "42.7";
    
                ModelCloth.Instance.data.listCloth.Add(clothOne);
                ModelCloth.Instance.data.listCloth.Add(clothOne1);
                ModelCloth.Instance.data.listCloth.Add(clothOne2);
                ModelCloth.Instance.data.listCloth.Add(clothOne3);
                ModelCloth.Instance.data.listCloth.Add(clothOne4);
                ModelCloth.Instance.data.listCloth.Add(clothOne5);
                ModelCloth.Instance.data.listCloth.Add(clothOne6);
                ModelCloth.Instance.data.listCloth.Add(clothOne7);
                ModelCloth.Instance.data.listCloth.Add(clothOne8);
                ModelCloth.Instance.data.listCloth.Add(clothOne9);
                ModelCloth.Instance.data.listCloth.Add(clothOne10);
                ModelCloth.Instance.data.listCloth.Add(clothOne11);
    
                ViewCloth.Instance.SetClothMsg(ModelCloth.Instance.data);
            }
            else
            {
                //正式
                if (Cloth_Name.Equals(""))
                {
                    ViewCloth.Instance.str_ClothName = "";
                }
                else
                {
                    ViewCloth.Instance.str_ClothName = Cloth_Name;
                }
                
                StartCoroutine(HttpGetMsgController_MLK.Instance.PostCloth(Cloth_ID));
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Unity Http通信+MVC

          本文链接:https://www.haomeiwen.com/subject/jsvctdtx.html