初学unity3d,解决一个游戏与web服务器连接问题。
看了项目中原始代码,发现每次之前的程序员每次调用WWW类都需要写一遍StartCoroutine,然后各种重复代码。
于是写了一个简单的封装类,先记录下来,将来慢慢优化。
如何使用:
WWWConnection connection = new WWWConnection(url, form); //url: 地址 , form: WWWForm--Unity3d用于封装参数的类 connection.connectionEvent += new WWWConnection.Callback(GetResult); //注册回调方法 StartCoroutine(connection.Get()); //启动网络连接 void GetResult(WWWConnection connection) //回调方法 { Debug.Log(connection.content); }
using UnityEngine; using System.Collections; public class WWWConnection { public WWWConnection(string url) { this.www = new WWW(url); } public WWWConnection(string url, WWWForm form) { this.www = new WWW(url, form); } private WWW www; public bool isDone{ get{return IsDone();} } public float progress{ get{return Progress ();} } public string content{ get{return Content ();} } public delegate void Callback(WWWConnection connection); public event Callback connectionEvent; public IEnumerator Get() { yield return this.www; if(this.connectionEvent != null) { connectionEvent(this); } } private bool IsDone() { return this.www.isDone; } private float Progress() { return this.www.progress; } private string Content() { return this.www.text; } public WWW GetWWW() { return this.www; } }