非功能代码:
if sprite.texture == "texture" {
(code)
}
当sprite具有特定纹理时,我试图访问sprite的纹理以运行代码。目前纹理仅在我的资产中,因此括号。谁能想出如何以一种有效的方式重写这段代码?
答案 0 :(得分:1)
sprite.texture
的类型为SKTexture?
,因此您无法将其与字符串进行比较,而应与实际的SKTexture对象进行比较。
尽管如此,您应该尝试重新设计代码,正如其他人在您的问题评论中所建议的那样。检查纹理本身并不是一个好的设计。首先,如果您决定在2个月内为精灵使用不同的纹理,那么您需要记住重新访问此代码。
我建议从SKSpriteNode继承并检查sprite的类型是否与您的子类相同。其他替代方法是比较sprite.name
或精灵的userData
。