【Unity】Protobuf的使用与常见问题
Protobuf的使用流程
protobuf參考教程:https://www.jianshu.com/p/b135676dbe8d
手寫.proto文件后,用CMD命令行運(yùn)行protoc.exe編譯器,進(jìn)入.proto文件路徑生成C#文件,再把C#文件放到Unity項目中使用。
?
插件protobuf-net:http://www.cnblogs.com/xuf22/articles/3504399.html
原因是官方Protobuf的C#實現(xiàn)要求.Net4.6及以上,而Unity使用的.Net過低版本(老版本最高.Net3.5,具體要看是用的Unity的版本)。
在已寫好的C#實體類中加上打標(biāo)簽。
?
插件protobuf-unity:https://github.com/5argon/protobuf-unity
這是Unity編輯器插件。Protobuf正常使用流程是手寫.proto文件后,用CMD命令行運(yùn)行protoc.exe編譯器,進(jìn)入.proto文件路徑生成C#文件,再把C#文件放到Unity項目中使用。該插件可自動尋找Unity項目中所有.proto文件并一鍵生成所有對應(yīng)的C#文件(出現(xiàn)在與每個.proto文件相同的目錄下)。并且當(dāng).proto文件被修改時會自動重新生成C#文件!
?
插件protobuf_for_unity
https://github.com/GongFaxin/protobuf_for_unity 或 https://github.com/bitcraftCoLtd/protobuf3-for-unity
適用于unity3d 5.x。unity2017及以后版本請使用google官方版本。常見問題
Missing input file
命令行使用protoc.exe時,報錯Missing input file。即當(dāng)前設(shè)置的--proto_path目錄下找不到.proto文件。如下圖,protoc.exe與person.proto文件在同一目錄下的。
?
原因是格式錯誤,文件路徑=./后面要加上一個空格!!!!!!!!!Unity不支持.Net3.5及以上
如果編譯Google.Protobuf.dll時選擇的.Net版本過高,把該dll導(dǎo)入Unity項目中能看到dll無法正常工作,如下圖。且.proto文件生成的C#文件中會報錯。 此時可以在Visual Studio中修改.Net版本再重新編譯dll。修改方法如圖。 或者在Unity中修改.Net版本(需要較新的Unity版本)。在Edit - Project Settings - Player中,改用.Net4.6,之后重啟Unity編輯器即可。總結(jié)
以上是生活随笔為你收集整理的【Unity】Protobuf的使用与常见问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 闭包详解一
- 下一篇: 深入理解并使用python的模块与包