如何填充SCNBox的内部

时间:2018-06-29 07:37:41

标签: ios scenekit arkit

我正在尝试SceneKit,并尝试用它制作迷宫式的游戏。但是,问题之一是,当您在盒子(管子,球体等)中移动时,盒子的投影消失了。

我已经多次浏览了文档,或者要么不匹配正确的措辞,要么不正确。

您将如何填充框的内容,以便在移动框时处于黑暗中?

谢谢!

1 个答案:

答案 0 :(得分:3)

SCNMaterial具有isDoubleSided属性,即:

  

一个布尔值,确定SceneKit是否应同时渲染两个   表面的正面和背面。

默认情况下,此设置为false,这意味着您的内容仅显示在一侧,例如外面。

  

如果您将此属性的值更改为YES,则SceneKit会同时渲染   每个多边形的正面和背面。

这样,就可以实现双面渲染的示例:

func createBoxNode(){

    //1. Create An SCNNode With An SCNBox Geometry
    let boxNode = SCNNode(geometry: SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0))

    //2. Set The Colour Of All Sides To Cyan
    boxNode.geometry?.firstMaterial?.diffuse.contents = UIColor.cyan

    //3. Enusre That Both Sides Are Rendered
    boxNode.geometry?.firstMaterial?.isDoubleSided = true

    //4. Place Our BoxNode & Add It To The Hierachy
    boxNode.position = SCNVector3(0, 0, -1.5)
    self.augmentedRealityView?.scene.rootNode.addChildNode(boxNode)
}

希望有帮助...