SCNText没有在SceneKit中显示

问题描述 投票:1回答:1

我正在尝试在我的3D场景中添加一个简单的文本叠加层,但没有任何内容出现。作为参考,SCNBox添加并显示就好了。救命?

SCNNode PlaceText(SCNVector3 pos)
{
    var text = SCNText.Create("hello world", 5);
    text.Font = UIFont.FromName("Avenir Heavy", 50);
    text.ChamferRadius = 0.3f;
    text.Flatness = 0.1f;
    text.FirstMaterial.Diffuse.Contents = UIColor.White;
    text.FirstMaterial.Specular.Contents = UIColor.Blue;

    var offset = new SCNVector3(0.2f, 0.2f, 0.2f);
    offset = SCNVector3.Add(pos, offset);

    var textNode = new SCNNode { Position = offset, Geometry = text };
    scnView.Scene.RootNode.AddChildNode(textNode);

    return textNode;
}
c# scenekit augmented-reality arkit scnnode
1个回答
0
投票

你忘了给text's SCNGeometry分配一个node.geometry

这是一个用Swift(mac版本)编写的工作示例:

import SceneKit
import QuartzCore

class GameViewController: NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let scene = SCNScene()
        let scnView = self.view as! SCNView
        scnView.scene = scene
        scnView.allowsCameraControl = true
        scnView.backgroundColor = NSColor.darkGray

        func placeText() {
            let text = SCNText(string: "HELLO WORLD", extrusionDepth: 3.0)
            text.font = NSFont(name: "Avenir", size: 18.0)
            text.chamferRadius = 0.3
            text.flatness = 0.1
            text.firstMaterial?.diffuse.contents = NSColor.white
            text.firstMaterial?.specular.contents = NSColor.blue
            let position = SCNVector3(-80,-10,0)
            let textNode = SCNNode()
            textNode.geometry = text                    // YOU MISSED THAT
            textNode.position = position
            scnView.scene!.rootNode.addChildNode(textNode)
        }
        placeText()
    }
}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.