我已经创建了SpriteKit粒子发射器文件smoke.sks。

我想让这个动画在UIView中运行,但是它没有addChild方法,而且我仍然有一些错误.
我尝试过这样的解决方案:
func addSmoke() {
//spark particle effect
let sparkEmmitterPath: String = Bundle.main.path(forResource: "smoke", ofType: "sks")!
let sparkEmmiter = NSKeyedUnarchiver.unarchiveObject(withFile: sparkEmmitterPath as String) as! SKEmitterNode
sparkEmmiter.position = CGPoint(x: self.backgroundMaskView.frame.size.width, y: self.backgroundMaskView.frame.size.height/2)
sparkEmmiter.name = "smoke"
sparkEmmiter.zPosition = 1
sparkEmmiter.targetNode = self
self.view.addChild(sparkEmmiter)
}2错误:
sparkEmmiter.targetNode = self不能将“ViewController”类型的值赋值给键入“SKNode?”
self.addChild(sparkEmmiter)不能将'SKEmitterNode‘类型的值转换为预期的参数类型'UIViewController'
我也应该创建SpriteKit视图(SKView)吗?
发布于 2022-01-19 13:29:03
我找到的唯一解决办法。我们需要将UIView类更改为SCNView,并为粒子创建scnp文件。
@IBOutlet weak var particles: SCNView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene()
let particlesNode = SCNNode()
let particleSystem = SCNParticleSystem(named: "smoke.scnp", inDirectory: "")
particlesNode.addParticleSystem(particleSystem!)
scene.rootNode.addChildNode(particlesNode)
particles.backgroundColor = .clear
particles.scene = scene
}但是. Apple确实删除了创建scnp文件的能力。
第二步是更改文件的类型。创建SpriteKit Particle File
(不要配置这个创建的文件,因为当您更改类型时,它将重新设置)
现在,更改Identity类型。

https://stackoverflow.com/questions/70764161
复制相似问题