Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在scenekit中的节点上放置文本?_Ios_Swift_3d_Scenekit - Fatal编程技术网

Ios 如何在scenekit中的节点上放置文本?

Ios 如何在scenekit中的节点上放置文本?,ios,swift,3d,scenekit,Ios,Swift,3d,Scenekit,这是一个非常简单的问题,由于某种原因,我在任何地方都找不到。如何在SCNNode的3D面上写入2D文本? 例如,在这样的事情上: let geo = SCNBox(width: 20, height: 20, length: 20, chamferRadius: 0.0); //geo.writeFace(postion, text) let box = SCNNode(geometry: geo); 当然,这个评论是虚构的。类似的吗?您需要创建所需字体和文本的纹理,然后将其作为材质的一部分应

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

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

当然,这个评论是虚构的。类似的吗?

您需要创建所需字体和文本的纹理,然后将其作为材质的一部分应用到对象上。虽然我在场景工具包中没有看到类似UVW贴图的东西,可以让您控制放置。它一定在那里。如果您只使用SCN几何体,可能还可以,因为SCNBox至少允许材料/纹理的每侧规格

可以使用UIKit文本绘制到上下文,或使用textureToNode对精灵工具包文本进行光栅化,动态创建2D类型纹理:

这似乎效率很低……我想这是唯一的选择?SceneKit也没有贴花或任何其他有趣的动态创建纹理的方法。我敢肯定,在与SpriteKit/SceneKit集成的斗争中,您会在内部多次重复“这似乎相当低效…”。还有GameplayKit;)SceneKit的另一个警告是,几乎没有用户基础,因此没有社区,苹果也没有提供任何使用方法。Phaser()之类的东西有500多个小演示,展示了如何以及为什么按照建议的方式做事。大部分都是一个人干的。“苹果不会为SpriteKit和SceneKit做这种事情,这是令人讨厌和不祥的。@harrylakins如果你已经解决了问题,你能发布一个解决方案吗?”?我也在努力解决这个问题。您好,我最终使用了SCNText,将其放平,然后手动将其放置在面部,结果比我想象的要好!