首页 > 解决方案 > 如何填充 SCNBox 的内部

问题描述

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

我已经多次阅读文档,我要么不匹配正确的措辞,要么不在那里。

你将如何填充一个盒子的内容,以便当你穿过它时你会在黑暗中?

谢谢!

标签: iosscenekitarkit

解决方案


AnSCNMaterial具有以下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)
}

希望能帮助到你...


推荐阅读