由于我是Swift iOS编程的新手,我对创建“预制件”有疑问? 我有Unity背景,有一些像预制件,你可以多次实例化。在Swift或Xcode中有类似的东西吗?特别是我在SpriteKit中寻找创建带有孩子的SKNode副本
答案 0 :(得分:3)
我认为与预制件最接近的是类。
您可以创建SKnode或任何其他节点的子类,例如SKSpriteNode,然后设置该类以执行您想要的操作。然后创建该类的实例。
class Box : SKSpriteNode{
init(){
//Setup your node the way you want it
super.init(texture: nil, color: UIColor.red, size: CGSize(width: 50, height: 50))
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
//create instance and add to scene.
let box = Box()
self.addChild(box)
您还可以设置节点,然后使用复制功能将此节点及其子节点复制。
let block1 = SKSpriteNode(color: UIColor.red, size: CGSize(width: 50, height: 50))
let child = SKSpriteNode(color: UIColor.blue, size: CGSize(width: 25, height: 25))
block1.addChild(child)
let copy = block1.copy() as! SKSpriteNode
addChild(copy)