相关疑难解决方法(0)

RealityKit – 以编程方式设置 Reality Composer 实体的文本

在我的 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”在我的场景中的文本对象,我想设置文本编程。

我怎样才能做到这一点?这是可能的?

提前致谢

augmented-reality swift arkit realitykit reality-composer

5
推荐指数
1
解决办法
2225
查看次数

如何将我自己的 Reality Composer 场景加载到 RealityKit 中?

我在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)

augmented-reality swift arkit realitykit

1
推荐指数
1
解决办法
1354
查看次数