ランタイムに配置されたコンテンツを永続化のためにシリアライズする方法
このハウツーは以下を含みます:
- 実行時にスポーンするプレハブの登録
- 将来のセッションでコンテンツを復元するために、トランスフォームとステートフル・データを保存する。
- 以前にシリアライズされたデータの更新
注
このハウツーでは、手動で作成した冗長文字列を使って、人間が読める形式でのシリアライゼーションを実演する。 適切なシリアライゼーションを行うには、 [Serializable]
構造体を使用し、 具象構造体にはJSONシリアライザを、コンパクトなストレージにはバイナリー・シリアライザを使用することを推奨します。
前提条件
Lightship ARを有効にしたUnityのプロジェクトが必要です。 詳細については、 ARDK 3.0 のインストールを参照してください。
ランタイム・コンテンツのシリアライゼーションの基本概念
リモートコンテンツオーサリング(Remote Content Authoring)とは対照的に、Unity のシーンは ARLocation ごとに 静的に配置されたオブジェクトで構築されますが、ランタイムコンテンツシリアライゼーション(Runtime Content serialization)では、プレイヤーが任意にコンテンツ を配置し、配置されたコンテンツを既知のフォーマットにシリアライズして、将来的に再スポーンできるようにします。
プレイヤーが構築したシーンをシリアライズするには、以下の情報が必要です:
- コンテンツがアンカーされるルート変換(ARLocation、Image Targetなど)。
- これにより、将来デシリアライズされたコンテンツが同じ場所に置かれることが保証される。
- プレイヤーが配置したすべてのGameObject
- それぞれのGameObjectの種類と状態(この例ではtransformとcolor)。
このデータは、文字列またはバイナリブロブに圧縮され、将来の検索に使用されます。
データをデシリアライズし、シーンを再構築する:
- 各GameObjectは、シリアライズされたデータから取得し、適切なGameObjectをインスタンス化する必要がある。