为了在客户端与服务器端使用共同的code,创建共有引用Common:
public enum OperationCode:byte //区分请求和响应的类型
{
Default,//默认请求
Login, //登录
Register //注册
}
public enum ReturnCode:short //服务器返回的类型
{
Success,//成功
Failed //失败
}
public enum ParameterCode:byte //区分传送数据的时候,参数的类型
{
Username,//用户名
Password, //密码
}
//获取字典的值
public class DictTool
{
public static T2 GetValue<T1, T2>(Dictionary<T1,T2> dict, T1 key)
{
T2 value;
bool isSuccess = dict.TryGetValue(key, out value);
if (isSuccess)
{
return value;
}
else
{
return default(T2);
}
}
}
在客户端新建一个请求的基类Request:
//客户端向服务器的请求
public abstract class Request:MonoBehaviour
{
public OperationCode OpCode;//请求类型
public abstract void DefaultRequest();//默认的请求
//服务器端返回的响应
public abstract void OnOperationResponse(OperationResponse operationResponse);
public virtual void Start()
{
//添加请求到集合
GamePhotonEngine.Instance.AddRequest(this);
}
public void OnDestroy()
{
//从集合中删除当前请求
GamePhotonEngine.Instance.RemoveRequest(this);
}
}
在GamePhotonEngine 类中添加:
//所有请求的一个集合
private Dictionary<OperationCode, Request> RequestDict = new Dictionary<OperationCode, Request>();
//客户端向服务器发起一个请求以后服务器处理完以后 就会给客户端一个响应
public void OnOperationResponse(OperationResponse operationResponse)
{