我创建了这个SpriteKitNode:

let examp = examps[examps.count-1] // examps is a global array with SKNodes inside of it


但是,当我尝试更改其纹理时,会收到此错误:

examp.texture = SKTexture(imageNamed: "examp2")



  类型“ SKNode”的值没有成员“纹理”


但是,它的值为“纹理”,所以我不知道解决方案是什么。

https://imgur.com/a/s1V0XZF

最佳答案

examps[SKNode]。这意味着exampSKNode,而不是SKSpriteNode,即使examps[examps.count-1]恰好持有SKSpriteNode

为了访问texture属性,您需要将examps[examps.count-1]的结果强制转换为SKSpriteNode

if let examp = examps[examps.count-1] as? SKSpriteNode {
    examp.texture = SKTexture(imageNamed: "examp2")
}

07-24 09:25