斯威夫特和预制件?

时间:2017-07-11 20:54:15

标签: swift unity3d sprite-kit

由于我是Swift iOS编程的新手,我对创建“预制件”有疑问? 我有Unity背景,有一些像预制件,你可以多次实例化。在Swift或Xcode中有类似的东西吗?特别是我在SpriteKit中寻找创建带有孩子的SKNode副本

1 个答案:

答案 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)