我将UIView
用作SCNPlane
的漫反射材料,因此可以在3D场景中显示2D菜单。
这按我的预期工作:
var node:SCNNode = // A child of my ARSCNView's scene
var menuVC:UIViewController = // I keep a strong reference to this view controller
let menuPlane:SCNPlane = // Newly created plane
menuPlane.firstMaterial?.diffuse.contents = menuVC.view
let menuPlaneNode = SCNNode(geometry: menuPlane)
menuPlaneNode.eulerAngles.x = -.pi / 2
node.addChildNode(menuPlaneNode)
但是,当将节点添加到场景中时,我会注意到“闪烁”;进一步检查发现,menuVC
的视图以全屏方式显示在ARSCNView
前面一帧,然后将其渲染到场景中。