我已经看到SceneKit包含一个不错的3D星空粒子效果:
我尝试使用SK3DNode将这种粒子效果添加到我的背景中。
这是我的代码:
import SpriteKit
import SceneKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
...
addStarfield()
}
func addStarfield() {
// create a new scene
let scene = SCNScene()
// create and add a camera to the scene
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)
// place the camera
cameraNode.position = SCNVector3(x: 0, y: 0, z: 15)
let ps = SCNParticleSystem(named: "Stars.scnp", inDirectory: "")
scene.rootNode.addParticleSystem(ps)
let starFieldNode = SK3DNode()
starFieldNode.scnScene = scene
starFieldNode.zPosition = -100
self.addChild(starFieldNode)
}
}
不幸的是,这不起作用。我只看到没有星星的灰色背景。我的普通SpriteKit精灵也不再可见。
我做错了什么?
谢谢你的帮助,
斯特凡
最佳答案
SpriteKit渲染器不支持SceneKit的所有功能,特别是那些可能涉及多遍渲染的功能,例如粒子,景深和技术。这是probably a good bug to file。
一些可能的解决方法,取决于应用程序中发生的其他事情: