更新了网络服务接口定义
This commit is contained in:
55
Packages/Plugins/GameDesigner/BITSerializeAdapter.cs
Normal file
55
Packages/Plugins/GameDesigner/BITSerializeAdapter.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using BITKit;
|
||||
using Net.Serialize;
|
||||
using Net.Share;
|
||||
using Net.System;
|
||||
|
||||
namespace BITKit
|
||||
{
|
||||
|
||||
public class BITSerializeAdapter : ISerializeAdapter
|
||||
{
|
||||
public bool IsEncrypt { get; set; }
|
||||
public int Password { get; set; }
|
||||
|
||||
public byte[] OnSerializeRpc(RPCModel model)
|
||||
{
|
||||
for (var i = 0; i < model.pars.Length; i++)
|
||||
{
|
||||
var obj = model.pars[i];
|
||||
if (!BITBinary.TryWrite(obj, out var buffer))
|
||||
{
|
||||
buffer = NetConvertFast2.SerializeObject(obj);
|
||||
}
|
||||
|
||||
model.pars[i] = buffer;
|
||||
}
|
||||
|
||||
return NetConvertFast2.SerializeModel(model);
|
||||
}
|
||||
|
||||
public FuncData OnDeserializeRpc(byte[] buffer, int index, int count)
|
||||
{
|
||||
var model = NetConvertFast2.DeserializeModel(buffer);
|
||||
for (var i = 0; i < model.pars.Length; i++)
|
||||
{
|
||||
var obj = model.pars[i];
|
||||
if (obj is not byte[] bytes) continue;
|
||||
var value = BITBinary.ReadAsValue(bytes);
|
||||
model.pars[i] = value;
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
public byte[] OnSerializeOpt(OperationList list)
|
||||
{
|
||||
return NetConvertFast2.SerializeObject(list).ToArray(true);
|
||||
}
|
||||
|
||||
public OperationList OnDeserializeOpt(byte[] buffer, int index, int count)
|
||||
{
|
||||
var segment = new Segment(buffer, index, count, false);
|
||||
return NetConvertFast2.DeserializeObject<OperationList>(segment);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user