尝试使用我的 RealityKit 项目作为屏幕应用程序 (VR) 的基础,而不是从后置摄像头投射到现实世界 (AR) 上。
任何人都知道如何使用.nonAR
相机选项异步加载 RealityKit 项目,因此它会在应用程序中投影,而不是利用后置摄像头?
我应该在 Swift 代码或 Reality Composer 项目中创建位置信息吗?
尝试使用我的 RealityKit 项目作为屏幕应用程序 (VR) 的基础,而不是从后置摄像头投射到现实世界 (AR) 上。
任何人都知道如何使用.nonAR
相机选项异步加载 RealityKit 项目,因此它会在应用程序中投影,而不是利用后置摄像头?
我应该在 Swift 代码或 Reality Composer 项目中创建位置信息吗?
下面介绍如何.usdz
借助 RealityKit 的.loadModelAsync()
实例方法和 Combine 的AnyCancellable
类型异步加载 VR 模型。
import UIKit
import RealityKit
import Combine
class VRViewController: UIViewController {
@IBOutlet var arView: ARView!
var anyCancellable: AnyCancellable? = nil
let anchorEntity = AnchorEntity(world: [0, 0,-2])
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
arView.backgroundColor = .black
arView.cameraMode = .nonAR
anyCancellable = ModelEntity.loadModelAsync(named: "horse").sink(
receiveCompletion: { _ in
self.anyCancellable?.cancel()
},
receiveValue: { [self] (object: Entity) in
if let model = object as? ModelEntity {
self.anchorEntity.addChild(model)
self.arView.scene.anchors.append(self.anchorEntity)
} else {
print("Can't load a model due to some issues")
}
}
)
}
}
但是,如果您想在 3D 环境中移动,而不是使用.nonAR
相机模式,请使用:
arView.environment.background = .color(.black)