标签: scntext

Swift Scenekit - 居中SCNText - getBoundingBoxMin:Max问题

享受SCNText上的alignmentMode选项.谷歌搜索周围看起来像alignmentMode和containerFrame有问题.我发现的替代方案建议使用获取边界框功能来查找文本大小,然后相应地手动调整.很棒,除了我不能让功能工作.当我试图得到两个向量时,我得到一个错误:

'SCNVector3'无法转换为'UnsafeMutablePointer <SCNVector3>'

我在几何和节点上得到了它.代码示例如下

func setCounterValue(counterValue:Int) {

    var v1 = SCNVector3(x: 0,y: 0,z: 0)
    var v2 = SCNVector3(x: 0,y: 0,z: 0)


    _counterValue = counterValue

    let newText = SCNText(string: String(format: "%06d", counterValue), extrusionDepth:sDepth)
    newText.font = UIFont (name: "Arial", size: 3)
    newText.firstMaterial!.diffuse.contents = UIColor.whiteColor()
    newText.firstMaterial!.specular.contents = UIColor.whiteColor()

    newText.getBoundingBoxMin(v1, max: v2)

    _textNode = SCNNode(geometry: newText)
    _textNode.getBoundingBoxMin(v1, max: v2)

}
Run Code Online (Sandbox Code Playgroud)

任何建议都非常感谢.

ios scenekit swift scntext

6
推荐指数
3
解决办法
7160
查看次数

SCNText渲染没有曲线,不像字体

当我运行此SceneKit代码时:

let txt = SCNText(string: "Hello", extrusionDepth: 0.2)
let textNode = SCNNode(geometry: txt)
scene.rootNode.addChildNode(textNode)
Run Code Online (Sandbox Code Playgroud)

我得到非常有棱角的文字:

文字效果不佳

似乎不管字体如何都可以这样做,并且它在设备上的行为与在模拟器中的行为相同。

这是上下文中的代码:

    // create a new scene
    let scene = SCNScene()

    // create and add a camera to the scene
    let cameraNode = SCNNode()
    cameraNode.camera = SCNCamera()
    scene.rootNode.addChildNode(cameraNode)

    // place the camera
    cameraNode.position = SCNVector3(x: 10, y: 0, z: 75)

    // create and add a light to the scene
    let lightNode = SCNNode()
    lightNode.light = SCNLight()
    lightNode.light!.type = SCNLightTypeOmni
    lightNode.position = SCNVector3(x: 0, y: 10, …
Run Code Online (Sandbox Code Playgroud)

ios scenekit scntext

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

SceneKit - SCNText居中不正确

我试图在下面的代码中使文本字符串(SCNText)适合框(SCNBox).框的大小看起来正确,但文本不在框的右侧中心.任何想法或解决方案?谢谢

let geoText = SCNText(string: "Hello", extrusionDepth: 1.0)
geoText.font = UIFont (name: "Arial", size: 8)
geoText.firstMaterial!.diffuse.contents = UIColor.red
let textNode = SCNNode(geometry: geoText)

let (minVec, maxVec) = textNode.boundingBox
scnScene.rootNode.addChildNode(textNode)

let w = CGFloat(maxVec.x - minVec.x)
let h = CGFloat(maxVec.y - minVec.y)
let d = CGFloat(maxVec.z - minVec.z)

let geoBox = SCNBox(width: w, height: h, length: d, chamferRadius: 0)
geoBox.firstMaterial!.diffuse.contents = UIColor.green.withAlphaComponent(0.5)
scnScene.rootNode.addChildNode(boxNode)
Run Code Online (Sandbox Code Playgroud)

文本不是框的中心

编辑:我添加了一个新的字符串图像(没有SCNBox节点)与debugOptions showBoundingBoxes看到它的边界框

在此输入图像描述

解决方案1:

从vdugnist的回答中,我为任何想要测试的人创建了一个游乐场代码:

import UIKit
import SceneKit
import PlaygroundSupport

var sceneView = SCNView(frame: CGRect(x: 0, y: …
Run Code Online (Sandbox Code Playgroud)

scenekit scntext

5
推荐指数
2
解决办法
2744
查看次数

使用 Swift 以编程方式更改 SceneKit 中 3D TextNode 的文本

所以我在我的 SCN 场景中放置了一个 3D 文本节点,我想稍后在我的应用程序中更改 Text 属性的值

SceneKit 检查器

在此处输入图片说明

以上是我如何更改检查器中文本的值,但有没有办法以编程方式进行更改?谢谢你

ios scenekit swift scntext

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

ARKit - 如何在另一个 SCNNode 中包含 SCNText(语音气泡)

我正在尝试在 ARKit 的语音气泡中创建一个带有简单文本的报价生成器。

我可以用文本显示语音气泡,但文本始终从中间开始并溢出到语音气泡之外。

任何帮助让它在语音气泡的左上角对齐并包裹在语音气泡内的帮助将不胜感激。

结果

在此输入图像描述

课程

class SpeechBubbleNode: SCNNode {
    private let textNode = TextNode()

    var string: String? {
        didSet {
            textNode.string = string
        }
    }

    override init() {
        super.init()

        // Speech Bubble
        let plane = SCNPlane(width: 200.0, height: 100.0)
        plane.cornerRadius = 4.0
        plane.firstMaterial?.isDoubleSided = true
        geometry = plane

        // Text Node
        textNode.position = SCNVector3(position.x, position.y, position.z + 1.0)
//        textNode.position = convertPosition(SCNVector3(0.0, 0.0, 1.0), to: textNode)
//        textNode.position = SCNVector3(0.0, 0.0, position.z + 1.0)
        addChildNode(textNode)
    }

    required init?(coder …
Run Code Online (Sandbox Code Playgroud)

word-wrap ios scnnode scntext arkit

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

SCNText - 背景“讲话泡泡”

如何在 SCNtext 中插入背景(例如“讲话泡泡”或矩形)?具体来说,如果我插入“Hello World”作为 SCNText(显然然后作为场景中的 SCNNode),那么我怎样才能只为该文本添加背景?它会是一个 UIimage,它将作为 SCNNode 插入“Hello World”中的相同位置?(请记住,SceneKit 中没有任何作为 SCNNode 背景的东西)

scntext arkit

2
推荐指数
2
解决办法
1396
查看次数

更改SCNText上的字符串值不会产生任何更改

我正在阅读陀螺仪并将SCNText几何形状的弦更改为陀螺仪的偏航值.这种变化发生在陀螺仪处理器内部,每1/30秒调用一次.在SCNText几何与Interface Builder中创建.

我正在使用此代码来检索对文本的引用:

SCNNode *textNode = [scene.rootNode childNodeWithName:@"yawText" recursively:YES];
self.text = [textNode geometry]; 
//self.txt is declared as @property (strong, nonatomic) SCNText *text;
Run Code Online (Sandbox Code Playgroud)

稍后在陀螺仪手柄上我这样做:

CGFloat yaw = convertToDegrees(attitude.yaw);
[weakSelfText setString:[NSString stringWithFormat:@"%.1f", yaw]];
NSLog(@"yaw = %1f", yaw);

// I had to declare weakSelfText outside the gyro handler
// because Xcode was complaining
// weakSelfText is declared like this
// __weak typeof(self.text) weakSelfText = self.text;
Run Code Online (Sandbox Code Playgroud)

NSLog正确打印值但是没有变化SCNText.

是的,我试图更改主线程上的文本.没变.

ios scenekit scnnode scntext

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

标签 统计

scntext ×7

ios ×5

scenekit ×5

arkit ×2

scnnode ×2

swift ×2

word-wrap ×1