Я использую UIView
в качестве рассеянного материала для SCNPlane
, чтобы я мог отображать 2D-меню внутри моей 3D-сцены.
Это работает, как я ожидал:
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
для 1 кадра, затем он отображается внутри сцены.