Swift 斯威夫特和预制件?
因为我是Swift iOS编程新手,所以我对创建“预置”有疑问?Swift 斯威夫特和预制件?,swift,unity3d,sprite-kit,Swift,Unity3d,Sprite Kit,因为我是Swift iOS编程新手,所以我对创建“预置”有疑问? 我有Unity的背景,有一些类似预置的东西,你可以多次实例化。在Swift或Xcode中有类似的东西吗?特别是我在SpriteKit中寻找它来创建带有子对象的SKNode副本我认为最接近预制的应该是类 您可以创建一个SKnode或任何其他节点的子类,例如一个SKSpriteNode,然后设置该类来执行您想要的操作。然后创建该类的实例 class Box : SKSpriteNode{ init(){ //S
我有Unity的背景,有一些类似预置的东西,你可以多次实例化。在Swift或Xcode中有类似的东西吗?特别是我在SpriteKit中寻找它来创建带有子对象的SKNode副本我认为最接近预制的应该是类 您可以创建一个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)
它起作用了!我以前试过这种方法,但不知什么原因它不起作用。非常感谢你!iirc这不适用于具有物理实体的节点(物理实体不会得到应有的复制)。。。至少它在过去不起作用,所以一定要仔细检查一下。如果这不再是一个问题,有人可以随意纠正我@加尔德夫