我試圖用循環在每個幾何圖形上添加一個不同的scnMaterial(UIImage),但循環不起作用。循環總是返回最後一個圖像。所以我總是看到每個幾何圖形上的最後一張圖像。循環總是返回最後一個圖像
class GameScene: SCNScene {
var geometry = SCNBox()
var boxnode = SCNNode()
convenience init(create: Bool) {
self.init()
let offset: Int = 10
var matCounter:Int = 1
for xIndex:Int in 0...1 {
for yIndex:Int in 0...1 {
// create a geometry copy
let geometry = SCNBox(width: 0.8 , height: 0.8, length: 0.1, chamferRadius: 0.005)
let geometry1 = SCNBox(width:2 , height: 2, length: 0.1, chamferRadius: 0.005)
let img = UIImage(named:"\(matCounter).png")
let material = SCNMaterial()
material.diffuse.contents = img
geometry1.firstMaterial = material
geometry1.firstMaterial = material
matCounter = matCounter + 1
let boxnode = SCNNode(geometry: geometry)
boxnode.position.x = Float(xIndex - offset)
boxnode.position.y = Float(yIndex - offset)
let geometry1Node = SCNNode(geometry: geometry1)
geometry1Node.position.x = Float(xIndex - 20)
geometry1Node.position.y = Float(yIndex - 20)
self.rootNode.addChildNode(boxnode)
self.rootNode.addChildNode(geometry1Node)
}
}
}
下面是我得到的結果:從圖片5初始化,如果它存在
哪條線你正在返回一些東西? – Honey
'geoCopy.firstMaterial = material'這行總是覆蓋'firstMaterial'屬性。只有最後一組值纔會持續。 – Alexander
請更新您的問題,解釋您如何決定應用哪種材質的幾何圖形。我在這裏猜測:應該在網格中的每個'n'節點上應用名爲'<> .png'的材料嗎? –