2

我正在尝试使用 realitykit 呈现一些文本,代码编译,场景开始,但是场景中没有显示文本。

我正在使用运行 iOS 13.1.2 的 iPhone 7,我尝试了相同的代码,但使用了一个盒子 Mesh Resource,它工作得很好。

我的控制器看起来像这样

    func makeUIView(context: Context) -> ARView {

        let arView = ARView(frame: .zero)

        let anchor = AnchorEntity(plane: .horizontal)

        let mesh = MeshResource.generateText("text")
        let color = UIColor.systemBlue
        let material = UnlitMaterial(color: color)
        let entity = ModelEntity(mesh: mesh, materials: [material])

        anchor.addChild(entity)

        // Add the box anchor to the scene
        arView.scene.anchors.append(anchor)

        return arView

    }

正如我之前所说,当我运行时,控制台会显示这些错误:

2019-10-02 09:07:33.707275+0200 tesss[646:78901] Compiler failed to build request
2019-10-02 09:07:33.707476+0200 tesss[646:78901] [Graphics] makeRenderPipelineState failed [output of type ushort is not compatible with a MTLPixelFormatR16Float color attachement.].
2019-10-02 09:07:33.707507+0200 tesss[646:78901] [Graphics] makeRenderPipelineState failed.
4

1 回答 1

3

默认情况下,该MeshResource.generateText方法使用默认非常大的系统字体,因此您需要调整它的大小。有两种方法可以做到这一点:

1)调整实体大小:

entity.scale = SIMD3<Float>(0.01, 0.01, 0.1)

2) 更改字体大小:

let mesh = MeshResource.generateText(
            "text", 
            extrusionDepth: 0.1,
            font: .systemFont(ofSize: 0.1),
            containerFrame: CGRect.zero,
            alignment: .left,
            lineBreakMode: .byTruncatingTail)
于 2019-10-02T10:07:30.740 回答