1

デバイスを対象とするプロジェクトで、MarcGravellのprotobuf-net C#プロトコルバッファ実装を使用しようとしています。Unity3DiOS

を使用して、プロトコルバッファファイルからC#ファイル(と呼びましょう)を作成することができました。MyFile.csMyFile.protoprotogen

ファイルをインポートするとprotobuf-net.dll(Unityフォルダー内のdllを使用しています)、以前にシリアル化されたファイルを正常に逆シリアル化できます(Pythonコードからシリアル化を実行しており、すべて正常に動作します)。

MyType myType;
using (var file = File.OpenRead("Assets/MyTypeBin")) 
{
  myType = ProtoBuf.Serializer.Deserialize<MyType>(file) ;
}

上記の解決策はシミュレーターでは正常に機能しますが、iOSデバイス(es.ipad)をターゲットにすると失敗します。

からに切り替えようとしunity/protobuf-net.dllましCoreOnly/ios/protobuf-net.dllたが、最後の1つではコンパイルに失敗します。Deserializeメソッドは、コアdll内で宣言されていないようです。

エラーCS0117:逆シリアル化ProtoBuf.Serializer' does not contain a definition for '

この記事を読みましたが、かなり時代遅れのようです。これは、の古い実装を指しprotobuf-netます。その間に何かが変わったことを願っています。

私の質問は:

  1. からデバイスをターゲットprotobuf-net r602にして使用することは可能ですか?iOSUnity3D

    シリアル化/逆シリアル化するモデルクラスのライブラリdll(アセンブリ)を作成する

    リンクされたブログ投稿で提案されているように?プロジェクト内でC#生成されたファイルを直接インポートするなど、より高速なワークフローが必要ですprotogenUnity3D

  2. はいの場合、どのように?どちらdllを参照する必要がありますか?iOS上記のスニペットをデバイスで再び機能させるための手順はどれですか?

4

1 に答える 1