WWW封装共享 [复制链接]
来源:互联网 发布:备案域名接入香港主机 编辑:程序博客网 时间:2024/05/20 07:50
WWW其实很好用的。实测了,几百个的并发量毫无问题,相信,你的产品也没多少需要几百个的并发下载吧。
WWW说白了就是个Unity3D对http请求的一个封装,他支持GET和POST两种(借助于表单WWWForm实现POST),我这里只是简单的封装使用,没有做深入捣鼓,如果你深入捣鼓了WWW的HttpHead部分,欢迎你的共享。
先看一下使用示例:
下面是源码: PgResourceLoader 文件源码:
PgLoadState.cs 加载状态代码:
PgLoadException.cs:异常文件
WWW说白了就是个Unity3D对http请求的一个封装,他支持GET和POST两种(借助于表单WWWForm实现POST),我这里只是简单的封装使用,没有做深入捣鼓,如果你深入捣鼓了WWW的HttpHead部分,欢迎你的共享。
先看一下使用示例:
[C#] 纯文本查看 复制代码
PgResourceLoader.Load<
string
>(
"http://*********"
,
null
, strObj =>
{
m_buildScene = JsonMapper.ToObject<SceneStruct[]>(strObj);
}, ex =>
{
Debug.Log(ex);
});
下面是源码: PgResourceLoader 文件源码:
[C#] 纯文本查看 复制代码
public
class
PgResourceLoader : MonoBehaviour
{
#region 私有单例
/// <summary>
/// 实例
/// </summary>
private
static
PgResourceLoader g_instance;
/// <summary>
/// 锁,控制多线程冲突(传闻5是多线程)
/// </summary>
private
static
readonly
System.Object g_lock =
new
object
();
/// <summary>
/// 获取实例
/// </summary>
private
static
PgResourceLoader Instance
{
get
{
if
(g_instance ==
null
)
{
lock
(g_lock)
{
if
(g_instance ==
null
)
{
GameObject gObject =
new
GameObject();
gObject.name =
"Penguin_Resource_Loader"
;
g_instance = gObject.AddComponent<PgResourceLoader>();
}
}
}
return
g_instance;
}
}
#endregion
#region 静态公开方法
/// <summary>
/// 加载资源
/// </summary>
/// <param name="p_resourceName">资源名称</param>
/// <param name="p_form">表单信息</param>
/// <param name="p_completeCallBack">回调函数</param>
/// <param name="p_errorCallBack">异常回调函数</param>
/// <returns>加载的资源实例</returns>
public
static
void
Load<T>(
string
p_resourceName, WWWForm p_form =
null
, Action<T> p_completeCallBack =
null
, Action<PgLoadException> p_errorCallBack =
null
) where T :
class
{
PgResourceLoaderEnumerator<T>.Load(Instance, p_resourceName, p_form, p_completeCallBack, p_errorCallBack);
}
#endregion
}
PgLoadState.cs 加载状态代码:
[C#] 纯文本查看 复制代码
namespace
Penguin
{
/// <summary>
/// 加载状态
/// </summary>
enum
PgLoadState
{
/// <summary>
/// 空闲
/// </summary>
Idle,
/// <summary>
/// 加载中
/// </summary>
Loading,
/// <summary>
/// 加载成功
/// </summary>
Success,
/// <summary>
/// 发生异常
/// </summary>
Error,
/// <summary>
/// 加载结束
/// </summary>
Lastone
}
}
PgLoadException.cs:异常文件
[C#] 纯文本查看 复制代码
namespace
Penguin
{
public
class
PgLoadException : Exception
{
/// <summary>
/// 设置或获取WWW加载器
/// </summary>
public
WWW WWW {
set
;
get
; }
/// <summary>
/// 构造函数
/// </summary>
public
PgLoadException()
:
base
()
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="p_message">异常消息</param>
public
PgLoadException(
string
p_message)
:
base
(p_message)
//调用基类的构造器
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="p_message">异常消息</param>
/// <param name="p_innerException">异常</param>
public
PgLoadException(
string
p_message, Exception p_innerException)
:
base
(p_message, p_innerException)
//调用基类的构造器
{
}
}
}
0 0
- WWW封装共享 [复制链接]
- 复制链接
- Unity WWW强力封装
- Unity3D 封装WWW
- 封装共享内存类
- 封装复制文件函数
- 共享权限的复制
- javaJDBC链接数据库封装
- 共享库链接详解
- 共享库链接详解
- QT知识共享链接
- 链接和共享库
- 动态链接共享库
- ofo 共享单车链接
- 复制链接(各种浏览器)
- JS复制各种链接
- JS复制各种链接
- 复制链接地址
- 以《天天炫斗》的兴衰看动作类手游运营策略
- Android异步处理三:Handler+Looper+MessageQueue深入详解
- Leetcode -- Rotate Image
- js实现图片旋转
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
- WWW封装共享 [复制链接]
- Android中的定时器AlarmManager
- 【Android】开发经验谈————很少有人会告诉你的Android开发基本常识
- eclipse下配置resin服务器
- g++如何编译多个原文件和头文件
- 自动布局之 NSLayoutConstraint-函数用法说明
- DZAgile简介
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理
- AndroidStudio 快捷键使用总结大全