1

尝试使用 RealityKit 构建多人游戏体验。但是所有实体的同步组件总是nil即使我明确设置它。

dump(entity.synchronization)  // nil
entity.synchronization = SynchronizationComponent()
dump(entity.synchronization)  // nil

结果,虚拟内容不被共享。我做错了什么?

4

1 回答 1

0

看起来,首先,您需要一个服务 ( MultipeerConnectivityService),它在多点连接会话 ( MCSession) 中的所有点之间提供场景同步。像那样:

import ARKit
import RealityKit
import MultipeerConnectivity

let mcPeerID = MCPeerID(displayName: UIDevice.current.name)

let session = MCSession(peer: mcPeerID, 
            securityIdentity: nil, 
        encryptionPreference: .required)

arView.scene.synchronizationService = 
                             try? MultipeerConnectivityService(session: session)


而且,我想,你打开了isCollaborationEnabled实例属性,让你选择点对点多用户 AR 体验:

let collabConfig = ARWorldTrackingConfiguration()
collabConfig.isCollaborationEnabled = true
arView.session.run(collabConfig)
于 2020-03-02T18:09:30.003 回答