UnityGameFramework接入Sproto協(xié)議
先說一下我踩的坑。我以為RPC會(huì)自己管理session。然后想錯(cuò)了。所以做了很多無用的事。想起之后才解決了這個(gè)問題。
UGF的network生命周期很簡單。、
獲得頭包長度,解析頭包。獲得真正包體的長度,解析包體。

大致的目錄結(jié)構(gòu)

基類Packet
PacketID,c2s 10000+tag
????????????????s2c 20000+tag
序列化
var bytes = clientRequest.Invoke(packetBase.Id-10000,packetBase.requestObj,session);
反序列化
var info= client.Dispatch(bytes);
PacketBase packet = null;
if (info.type==SprotoRpc.RpcType.REQUEST)
{
? ?Type type = GetServerToClientPacketType(20000 + info.tag.Value);
? ?if (type==null)
? ?{
? ? ? ?Debug.Log("未獲得類型");
? ?}
? ?packet=ReferencePool.Acquire(type) as PacketBase;
}
else
{
? ?Type type = GetServerToClientPacketType(10000 + m_SissionTags[info.session.Value]);
? ?packet=ReferencePool.Acquire(type) as PacketBase;
? ?packet.responseObj = info.responseObj;
}
return packet;
