【问题标题】:How to put text over node in scenekit?如何将文本放在场景包中的节点上?
【发布时间】:2017-01-31 07:12:58
【问题描述】:

非常简单的问题,由于某种原因我在任何地方都找不到。如何在SCNNode 的 3D 面上书写 2D 文本? 例如,在这样的事情上:

let geo = SCNBox(width: 20, height: 20, length: 20, chamferRadius: 0.0);
//geo.writeFace(postion, text)
let box = SCNNode(geometry: geo);

当然评论是编造的。有什么类似的吗?

【问题讨论】:

    标签: ios swift 3d scenekit


    【解决方案1】:

    您需要创建所需字体和文本的纹理,然后将其作为材料的一部分应用到对象上。虽然我没有在 Scene Kit 中看到任何类似于 UVW 映射的东西来让您控制放置。它必须在那里。如果您只使用 SCN 几何体,您可能会没事,因为 SCNBox 至少允许材料/纹理的每个侧面规范。

    您可以使用 UIKit 文本绘制到上下文动态创建 2D 类型纹理,或者使用 textureToNode 对 Sprite Kit 文本进行光栅化: https://developer.apple.com/reference/spritekit/skview/1520114-texturefromnode?language=objc

    【讨论】:

    • 这似乎相当低效...我想这是唯一的选择?很奇怪。
    • SceneKit 也没有贴花或任何其他有趣的动态创建纹理的方法。我敢肯定,在与 SpriteKit/SceneKit 集成作斗争时,您会在内部多次重复“这似乎相当低效……”。然后是 GameplayKit ;)
    • SceneKit 的另一个警告,几乎没有用户群,因此没有社区,Apple 没有提供任何关于使用它的方法。像 Phaser (phaser.io/examples) 这样的东西有超过 500 个小演示,展示了如何以及为什么按照建议的方式做事。一个人做大部分。 Apple 没有为 SpriteKit 和 SceneKit 做这种事情是令人讨厌和不祥的。
    • @harrylakins 如果您已经解决了您的问题,您可以发布解决方案吗?也试图弄清楚这一点。
    • 您好 - 我最终还是使用了 SCNText,将它弄平,然后手动将它靠在脸上 - 结果比我想象的要好!
    猜你喜欢
    • 2015-04-28
    • 2023-03-12
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2021-03-11
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多