Unity中使用HTTP弱联网
来源:互联网 发布:淘宝积分 编辑:程序博客网 时间:2024/05/29 19:02
创建Web服务器
第一步
Ctrl+Shift+N打开
第二步
创建成功
这里创建Web服务器的方式为2012VS若果要发布IIS就要配置一些属性
配置IIS发布站点
配置IIS服务器完毕,按照正常的发布IIS站点的顺序就可以使用
HTTP两种通讯方式
- Get的方式直接是把传输的数据放到URL中进行传输,优点是传输快,缺点是不安全,值在URL中可以看到,另一个是传输的量有限制
- Post的方式是通过WWWFrom这个类进行添加数据,优点是安全,传输的量没有限制,缺点是传输速度慢
HTTP通讯管理类
/// <summary>/// Http通讯管理/// </summary>public class NetWorkHttp : SingletonMono<NetWorkHttp>{ #region 属性 /// <summary> /// Web请求回调 /// </summary> private Action<CallBackArgs> m_CallBack; /// <summary> /// Web请求回调数据 /// </summary> private CallBackArgs m_CallBackArgs; /// <summary> /// 是否繁忙 /// </summary> private bool m_IsBusy = false; public bool IsBusy { get { return m_IsBusy; } } #endregion protected override void OnStart() { base.OnStart(); m_CallBackArgs = new CallBackArgs(); } #region 发送Web数据 SendData /// <summary> /// 发送Web数据 /// </summary> /// <param name="url"></param> /// <param name="callBack"></param> /// <param name="isPost"></param> /// <param name="json"></param> public void SendData(string url, Action<CallBackArgs> callBack, bool isPost = false, string json = "") { if (m_IsBusy) return; m_IsBusy = true; m_CallBack = callBack; if (isPost) { PostUrl(url, json); } else { GetUrl(url); } } #endregion #region Get请求 GetUrl /// <summary> /// Get请求 /// </summary> /// <param name="url"></param> private void GetUrl(string url) { WWW data = new WWW(url); StartCoroutine(Get(data)); } private IEnumerator Get(WWW data) { yield return data; m_IsBusy = false; if (string.IsNullOrEmpty(data.error)) { if (m_CallBack != null) { Debug.Log(data.text); m_CallBackArgs.HasError = false; m_CallBackArgs.Json = data.text; m_CallBack(m_CallBackArgs); } } else { if (m_CallBack != null) { m_CallBackArgs.HasError = true; m_CallBackArgs.ErrorMsg = data.error; m_CallBack(m_CallBackArgs); } } } #endregion #region Post请求 PostUrl /// <summary> /// Post请求 /// </summary> /// <param name="url"></param> /// <param name="json"></param> private void PostUrl(string url, string json) { //定义一个表单 WWWForm form = new WWWForm(); //给表单添加值 form.AddField("", json); WWW data = new WWW(url, form); StartCoroutine(Requset(data)); } /// <summary> /// 请求服务器 /// </summary> /// <param name="data"></param> /// <returns></returns> private IEnumerator Requset(WWW data) { yield return data; m_IsBusy = false; if (string.IsNullOrEmpty(data.error)) { if (m_CallBack != null) { m_CallBackArgs.HasError = false; m_CallBackArgs.Json = data.text; m_CallBack(m_CallBackArgs); } } else { if (m_CallBack != null) { m_CallBackArgs.HasError = true; m_CallBackArgs.ErrorMsg = data.error; m_CallBack(m_CallBackArgs); } } } #endregion #region Web请求回调数据 CallBackArgs /// <summary> /// Web请求回调数据 /// </summary> public class CallBackArgs : EventArgs { /// <summary> /// 是否有错 /// </summary> public bool HasError; /// <summary> /// 错误原因 /// </summary> public string ErrorMsg; /// <summary> /// Json数据 /// </summary> public string Json; } #endregion}
Mono单例基类
public class SingletonMono<T> : MonoBehaviour where T : MonoBehaviour{ #region 单例 private static T instance; public static T Instance { get { if (instance == null) { GameObject obj = new GameObject(typeof(T).Name); DontDestroyOnLoad(obj); instance = obj.GetOrCreateComponent<T>(); } return instance; } } #endregion //Use this for Initialization void Awake() { OnAwake(); } // Before Update Execute void Start() { OnStart(); } // Update is called once per frame void Update() { OnUpdate(); } void Destroy() { BeforeOnDestroy(); } protected virtual void OnAwake() { } protected virtual void OnStart() { } protected virtual void OnUpdate() { } protected virtual void BeforeOnDestroy() { }}
阅读全文
2 0
- Unity中使用HTTP弱联网
- Unity网络通讯的一些理解——弱联网http
- Android开发中联网时Http选择
- handler的使用详解+http联网
- [Unity3d]unity中http通信
- Unity中Http的优化
- unity联网模块制作
- unity判断联网
- Unity中使用单例类
- Unity中使用WebView
- Unity中使用c++
- mvc中使用Unity
- Unity中使用Protobuf
- Unity中使用FlatBuffers
- J2ME中使用socket开发联网程序
- J2ME中使用Socket开发联网程序
- J2ME中使用CNWAP接入点联网
- J2ME中使用Socket开发联网程序
- 程序员的自我修养
- HPU1270: Wooden Sticks
- Training MNIST with Caffe
- 将ListBox选中的项进行上下移动
- 文章标题
- Unity中使用HTTP弱联网
- NOIP 2011 Mayan游戏
- NOIP2017提高组初赛游记 (题解&心得总结)(c++)
- Java中sleep()和wait()的区别
- 快慢指针解决单向链表是否有环的一系列问题
- Java IO流文件切割 与合并
- Android常用compile大全集合,持续不间断不定时更新
- 漫画:如何破解 MD5 算法?
- 分治算法,动态规划,贪婪算法以及递归之间的区别与联系