在我的 iOS 应用程序中,我想使用新的 Reality Composer 引入 AR 的一部分。
在我的项目中,我使用以下代码加载场景:
let arView = ARView.init(frame: frame)
// Configure the AR session for horizontal plane tracking.
let arConfiguration = ARWorldTrackingConfiguration()
arConfiguration.planeDetection = .horizontal
arView.session.run(arConfiguration)
arView.session.delegate = self
self.view.addSubview(arView)
Experience.loadSceneAsync{ [weak self] scene, error in
print("Error \(String(describing: error))")
guard let scene = scene else { return }
arView.scene.addAnchor(scene)
// THIS IS THE entity that i want to edit programmatically
scene.Label
Run Code Online (Sandbox Code Playgroud)
该“scene.label”在我的场景中的文本对象,我想设置文本编程。
我怎样才能做到这一点?这是可能的?
提前致谢
我在Experience.rcproject文件中创建了 3 个“场景” ,这是在您使用 xcode 启动新的增强现实项目时创建的。
经常为 3D 工作,我会说这些是场景中的 3 个对象,但在里面Experience.rcproject我添加了 3 个“场景”。每一个内部,都有相同的 3D 模型。第一个附加到水平平面,第二个附加到垂直平面,第三个附加到图像。
我第一次使用 Reality Kit 并在此过程中学习。
我这样做的想法是,当我想要将它附加到水平、垂直或图像时加载正确的对象。
我就是这样完成的。
我修改Experience.swift了 Apple 提供的文件以接受场景名称,如下所示:
public static func loadBox(namedFile:String) throws -> Experience.Box {
guard let realityFileURL = Foundation.Bundle(for: Experience.Box.self).url(forResource: "Experience", withExtension: "reality") else {
throw Experience.LoadRealityFileError.fileNotFound("Experience.reality")
}
let realityFileSceneURL = realityFileURL.appendingPathComponent(namedFile, isDirectory: false)
let anchorEntity = try Experience.Box.loadAnchor(contentsOf: realityFileSceneURL)
return createBox(from: anchorEntity)
}
Run Code Online (Sandbox Code Playgroud)
我叫这条线
let entity = try! Experience.loadBox(namedFile:sceneName)
Run Code Online (Sandbox Code Playgroud)
无论我想要什么,但我必须使用以下代码:
// I have to keep …Run Code Online (Sandbox Code Playgroud)