RealityKit – 以编程方式设置 Reality Composer 实体的文本 [英] RealityKit – Set text programmatically of an Entity of Reality Composer

查看:50
本文介绍了RealityKit – 以编程方式设置 Reality Composer 实体的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 iOS 应用中,我想使用新的 Reality Composer 引入 AR 的一部分.

In my iOS app I want to introduce a part of AR using the new Reality Composer.

在我的项目中,我使用以下代码加载场景:

In my project I load a scene with this code:

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

scene.label" 是我场景中的文本对象,我想以编程方式设置文本.

The "scene.label" is a text object in my scene and I want to set text programmatically.

我该怎么做?有可能吗?

How can I do that? It's possible?

提前致谢

推荐答案

在 RealityKit 框架中,使用以下 type 方法 用于生成 3D 文本:

In RealityKit framework, use the following type method for generating 3D text:

static func generateText(_ string: String, 
                   extrusionDepth: Float, 
                             font: MeshResource.Font, 
                   containerFrame: CGRect, 
                        alignment: CTTextAlignment, 
                    lineBreakMode: CTLineBreakMode) -> MeshResource

让我们看看真正的代码是什么样子的:

Let's see how a real code looks like:

let textAnchor = try! SomeText.loadTextScene()

let textEntity: Entity = textAnchor.vacation!.children[0].children[0]

var textModelComponent: ModelComponent = (textEntity.components[ModelComponent])!

textModelComponent.mesh = .generateText("Hello, World!",
                         extrusionDepth: 0.5,
                                   font: .systemFont(ofSize: 0.25),
                         containerFrame: CGRect.zero,
                              alignment: .center,
                          lineBreakMode: .byCharWrapping)

textAnchor.vacation!.children[0].children[0].components.set(textModelComponent)
arView.scene.anchors.append(textAnchor)

这篇关于RealityKit – 以编程方式设置 Reality Composer 实体的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆