インスタンスプロパティ
isCollaborationEnabled
ピアツーピアのマルチユーザ AR 体験を選択するフラグ。
宣言
var isCollaborationEnabled: Bool { get set }
議論
このプロパティのデフォルト値は false です。collaboration (共同作業) を有効にすると、ARKit は定期的に session(_:didOutputCollaborationData:) を呼び出し、同僚と共有するための共同作業データを提供します。共同作業データには、ARKit が検出する実世界の表面、それらに対する位置、および作成したアンカーに関する情報が含まれています。
複数のユーザが共同作業データを相互に共有すると、ユーザがアンカーを共有および操作することで対話する AR 体験が実現します。共同作業データは、ユーザ独自の世界観を描写する情報を含めることで、ARKit が 1 人のユーザだけで行うよりもはるかに迅速に実環境のレイアウトを理解できるようにします。
詳細については、共同作業セッションの作成 (Creating a Collaborative Session) を参照してください。
重要
共同セッションは、最大 4 人の参加者で最適に機能します。
ネットワークを介した共同作業データの共有
ネットワークフレームワークの選択やコードの実装など、ネットワークを介して共同作業データを送信する責任があなたにはあります。多人数接続 (Multipeer Connectivity) を介してユーザ間で世界地図を共有するアプリの例については、マルチユーザで AR 体験の作成 (Creating a Multiuser AR Experience) を参照してください。マルチユーザで AR 体験の作成は、会員ユーザ間で世界データを共有することを示していますが、ホストとゲスト間のモデルを使用して共有しています。共同作業データの主な利点は、世界のデータをピアツーピアで共有できることです。
送信するデータは、セッションによって提供される ARSession.CollaborationData オブジェクトのシリアル化されたバージョンです。NSKeyedArchiver (NSKeyedArchiver) を使用してシリアル化します。
func session(_ session: ARSession, didOutputCollaborationData data: ARSession.CollaborationData) {
}
共同作業データを使用したセッションの更新
他のユーザから共同作業データを受け取ったら、それを使用して ARSession.CollaborationData オブジェクトをインスタンス化し、update(with:) を介してオブジェクトをセッションに渡して下さい。
func receivedData(_ data: Data) {
}