見出し画像

Niantic Lightship ARDKのネットワーク シリアライズヘルパークラスとエラーコード一覧

ネットワーク シリアライズヘルパークラス

IMultipeerNetworkingのデータをシリアライズするためのヘルパー関数の使用方法について説明します。

シリアライズ ヘルパー

MultipeerNetworking(または ARNetworking)オブジェクトでデータを送信する場合、byte配列にする必要があります。

Lightship ARDKでは、オブジェクトの情報からデータ送信の
ために byte配列にシリアライズする機能とデータ受信後にオブジェクトの情報にデシリアライズするためのスクリプトを提供します。

Vector3 シリアライズ

private static byte[] SerializeVector3(Vector3 vector)
{
  using (var stream = new MemoryStream())
  {
    GlobalSerializer.Serialize(stream, vector);
    return stream.ToArray();
  }
}

Vector3 デシリアライズ

private static Vector3 DeserializeVector3(byte[] data)
{
  using (var stream = new MemoryStream(bytes))
    return (Vector3)GlobalSerializer.Deserialize(stream);
}

BinarySerializerによって、複数のフィールド/オブジェクトを1つのbyte配列に直列化することができます。

private static byte[] SerializePositionAndRotation(Vector3 position, Vector3 rotation)
{
  using (var stream = new MemoryStream())
  {
    using (var serializer = new BinarySerializer(stream))
    {
      serializer.Serialize(position);
      serializer.Serialize(rotation);
      // here any other object can be serialized.
      return stream.ToArray();
    }
  }
}
private static Vector3[] DeserializePositionAndRotation(byte[] data)
{
  using (var stream = new MemoryStream(data))
  {
    using (var deserializer = new BinaryDeserializer(stream))
    {
      var result = new Vector3[2];
      result[0] = (Vector3)deserializer.Deserialize(); // position
      result[1] = (Vector3)deserializer.Deserialize(); // rotation
      // The number and order of the Deserialize() calls should match the Serialize() calls.
      return result;
    }
  }
}

エラーコード

IMultipeerNetworking.ConnectionFailedイベントで表示される可能性のあるエラーコードの一覧です。

0
不明または未初期化のエラー

200
OK (エラーなし)

500
ARBE (AR BackEnd Server) エンドポイントが指定されていない

501
ARBE接続に失敗。

502
ARBEのHTTP接続に失敗。

503
ARBEレスポンス遅延によるエラー。

504
ARBEのバージョンによる互換性エラー。

600
認証エンドポイント未設定。

601
認証サーバーの接続に失敗。

602
認証HTTPに失敗。

603
認証サーバーのレスポンス遅延によるエラー。

700
APIキーが無効。

701
APIキーが未設定。

800
無効なUDPサーバーの応答。

911
予期せぬエラー

最後に

OnePlanet XR

OnePlanet XR はAR/MR技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。
ご相談から受け付けております。ご興味ございましたら弊社までお問い合わせください。(以下にアクセスするとお問い合わせページに遷移されます。)

https://1planet.co.jp/xrconsulting.html

Niantic Lightship VPSを使用したアプリケーションの開発を行ってます。

サンフランシスコで開催されたNiantic主催のLightship Summitでは会場内で開発中のVPSアプリケーションの動画がお披露目されました。

Niantic Lightship ARDK のブログ記事

この記事以外にNiantic Lightship ARDKのブログ記事を投稿しています。

OnePlanet Tech Magazine

Niantic Lightship ARDK以外のAR技術記事も定期的に投稿してます。