前两篇讲解了如何使用导入NuGet程序包和动态链接库的方式来使用Protobuf-net。接下来将讲解如何直接在Unity中使用源码来进行序列化与反序列化操作。
首先需要获取源码,获取方式上一篇已经说明,不清楚的可以看:[Unity3D]简单使用Protobuf-net(二)
创建一个Unity工程,然后将源码中的“protobuf-net”文件夹导入到Unity工程中,“protobuf-net”文件夹是“protobuf-net”的工程目录,包含了其所有的需要用到的源码。等待Unity编译完成。
经过Unity编译后会报不安全代码的错误,是因为使用了指针,则需要在Assets目录下添加一个“smcs.rsp”文件,用于控制smcs的脚本编译。
在“smcs.rsp”中添加如下内容:
-unsafe
-define:FEAT_COMPILER;PLAT_BINARYFORMATTER;PLAT_XMLSERIALIZER;PLAT_NO_INTERLOCKED;FEAT_SAFE
-unsafe 表示允许不安全代码;
-define 定义宏,用于控制需要编译的代码。因为是在Unity中使用,就按如上定义。不清楚如何定义的可以看“protobuf-net”工程目录下的“protobuf-net.csproj”文