[ProtoContract]
public class Entity
{
[ProtoMember(1)]
public int Id;
[ProtoMember(2)]
public string Name;
}
通过C#的动态编译,编译SheetProtobuf.cs,编译成功后生成.bytes文件
//------------------------------动态编译-------------------------------------
var provider = new CSharpCodeProvider();
var parameters = new CompilerParameters();
parameters.ReferencedAssemblies.Add(Application.dataPath + "/Plugins/Protobuf/protobuf-net.dll");
#if UNITY_EDITOR_OSX
var pathName = "PATH";
var envPath = Environment.GetEnvironmentVariable(pathName);
var monoPath = Path.Combine(EditorApplication.applicationContentsPath, "Mono/bin");
Environment.SetEnvironmentVariable(pathName, envPath + ":" + monoPath, EnvironmentVariableTarget.Process);
#endif
var result = provider.CompileAssemblyFromSource(parameters, sheetCSSB.ToString());
if (result.Errors.Count == 0)
{
//------------------------------生成二进制文件-------------------------------------
...
}