我基于.sks
模板创建了一个spark
粒子发射器。
我的应用程序是一个普通的应用程序(不是游戏)。当用户点击按钮时,我有一个新的视图控制器,以模态over fullscreen
显示,以便我可以模糊背景。
在这个模式中,我创建了一个view
并为其提供了一个SCNView
类,请参见下图:
如何加载粒子.sks
文件以在Particles
视图上的viewController上执行动画?
更新 如何在视图控制器中加载SceneKit粒子系统?
答案 0 :(得分:4)
如@mnuages所述,您可以使用.scnp
文件而不是.sks
,这是一个SceneKit粒子系统。
所以步骤是:
ConfettiSceneKitParticleSystem.scnp
SCNView
,就像问题的打印屏幕一样在UIViewController
:
class SomeVC: UIViewController {
@IBOutlet weak var particles: SCNView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene()
let particlesNode = SCNNode()
let particleSystem = SCNParticleSystem(named: "ConfettiSceneKitParticleSystem", inDirectory: "")
particlesNode.addParticleSystem(particleSystem!)
scene.rootNode.addChildNode(particlesNode)
particles.scene = scene
}
}
Et Voila ......你有动画:)
答案 1 :(得分:3)
library(plyr)
rbind.fill(lapply(list(jsn1, jsn2, jsn3, jsn4), as.data.frame))
id col1 col2 col3
1 id1 1 A 11
2 id2 2 B 12
3 id3 NA C 13
4 id4 3 <NA> 14
个文件是SpriteKit粒子系统。您还可以在Xcode中创建SceneKit粒子系统,它们是.sks
个文件。
.scnp
文件基本上是已归档的.scnp
,可以使用SCNParticleSystem
加载,并使用NSKeyedUnarchiver
添加到您的场景中。
答案 2 :(得分:0)
创建SpriteKit粒子文件可能更容易(这就是您所做的)。您可以将其添加到UIViewController的主视图中。
将此添加到某处:
extension SKView {
convenience init(withEmitter name: String) {
self.init()
self.frame = UIScreen.main.bounds
backgroundColor = .clear
let scene = SKScene(size: self.frame.size)
scene.backgroundColor = .clear
guard let emitter = SKEmitterNode(fileNamed: name + ".sks") else { return }
emitter.name = name
emitter.position = CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height / 2)
scene.addChild(emitter)
presentScene(scene)
}
}
要使用:
override func viewWillAppear(_ animated: Bool) {
view.addSubview(SKView(withEmitter: "ParticleFileName"))
}