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

我已经多次浏览了文档,或者措辞不正确或不正确。

您如何填充盒子的内容,以便在移动盒子时会陷入黑暗?

谢谢!

最佳答案

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)
}

希望能帮助到你...

08-19 15:50