Unity/MessagePack
提供: 初心者エンジニアの簡易メモ
目次
MessagePackとは
効率の良いバイナリ形式のオブジェクト・シリアライズ フォーマット
公式:https://msgpack.org/ja.html
c#のPackage
5つある C# msgpack C# ymofen C# caesay C# mlsomers C# neuecc
neueccのMessagePack導入
neuecc https://github.com/MessagePack-CSharp/MessagePack-CSharp
PackageManagerのgiturlに
https://github.com/neuecc/MessagePack-CSharp.git?path=src/MessagePack.UnityClient/Assets/Scripts/MessagePack#v2.6.100-alpha
を追加。
もしくは、Packages/manifest.jsonに以下を追加
{ "dependencies": { "com.neuecc.messagepack": "https://github.com/neuecc/MessagePack-CSharp.git?path=src/MessagePack.UnityClient/Assets/Scripts/MessagePack#v2.6.100-alpha",
PackageManagerからMessagePackのインストール
- MessagePack annotations for C# (NuGet)
- MessagePack for C# (NuGet)
- MessagePack Source Generator and Analyzer (NuGet)
"namespace name 'NET' does not exist"エラーが出る時
error CS0234: The type or namespace name 'NET' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
↓の手順で、Microsoft.NET.StringToolsをインストールする
nugetでMicrosoft.NET.StringToolsインストール
unityメイン/Edit/ProjectSettings/PackageManagerから以下を追加
Name: Unity NuGet URL: https://unitynuget-registry.azurewebsites.net Scope(s): org.nuget
unityメイン/PackageManager/MyRegistoryでMicrosoft.NET.StringTools検索してインストール
mpcインストール
netインストール(net7) https://dotnet.microsoft.com/ja-jp/download
mpcインストール
dotnet tool install --global MessagePack.Generator
Serializer.generated生成
mpc -i Assembly-CSharp.csproj -o ./Assets/Script/Serializer.generated.cs
参考:https://limegame.hatenablog.com/entry/2023/05/30/164100
mpc実行で"Developer Pack をダウンロードして"とエラーが出た
/usr/local/share/dotnet/sdk/6.0.427/Microsoft.Common.CurrentVersion.targets(1220,5): error MSB3644: .NETFramework,Version=v4.7.1 の参照アセンブリが見つかりませんでした。この問題を解決するには、このフレームワーク バージョンの Developer Pack (SDK/Targeting Pack) をインストールするか、アプリケーションのターゲットを再設定してください。https://aka.ms/msbuild/developerpacks で .NET Framework Developer Pack をダウンロードできます。
MessagePackサンプル
出力
シリアライズされたデータ 92-A4-68-6F-67-65-01 デシリアライズされたデータ hoge level=1