ios - SCNMaterial 内容中的 SKScene 出现颠倒

标签 ios swift sprite-kit scenekit

我正在尝试使用平面几何结构的 SCNNode,它在其中呈现二维文本。我通过将 SKLabelNode 设置为几何体的 Material 来做到这一点(从 here 中获取)

这是我的代码:

let label = SKLabelNode(text: "Test Text 1")
label.fontColor = .white
label.fontName = UIFont.systemFont(ofSize: 32).fontName
label.fontSize = 32

let backgroundRectShape = SKShapeNode(rect: CGRect(origin: .zero, size: label.frame.size))
backgroundRectShape.fillColor = .orange
backgroundRectShape.addChild(label)
label.position = CGPoint(x: backgroundRectShape.frame.width / 2, y: 0)

let skScene = SKScene(size: label.frame.size)
skScene.addChild(backgroundRectShape)
backgroundRectShape.position = .zero

let plane = SCNPlane(width: label.frame.width / 10, height: label.frame.height / 10)
plane.firstMaterial?.diffuse.contents = skScene
let node = SCNNode(geometry: plane)

scene.rootNode.addChildNode(node)

一切似乎都很好,但 SKLabelNode 出现倒置: Screenshot 1

SCNNode 确实正确对齐并且没有旋转,因为当我将图像设置为 Material 内容时,一切正常: Screenshot 2

我只是不明白为什么会这样。最简单的解决方案是将 SKLabelNodeyScale 设置为 -1,但我不想在不了解它默认显示颠倒的原因的情况下这样做。

最佳答案

plane.firstMaterial?.diffuse.contentsTransform = SCNMatrix4Translate(SCNMatrix4MakeScale(1, -1, 1), 0, 1, 0)

关于ios - SCNMaterial 内容中的 SKScene 出现颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890040/

相关文章:

ios - Swift:出现键盘时滚动 UITableView

swift - 我的快速方法没有输出

ios - 我正在尝试制作一款横向卷轴游戏,但我正在努力无限地生成地面

sprite-kit - 如何在 iOS 11 中将 SKVideoNode 添加到 ARKit-SceneKit?

ios - 在 uitableview 单元格中执行操作按钮以执行删除功能

设置 UITextfield 委托(delegate)时 iOS 应用程序崩溃

ios - 核心运动事件是否与核心位置有关

ios - 如何从锁定屏幕和控制中心隐藏 MPMediaItemPropertyPlaybackDuration slider ?

iOS 如何在 WKWebView 中使用 YouTube iFrame API 事件

ios - Swift:如何让子弹在玩家武器上产生?