use*_*677 3 scenekit sprite-kit swift arkit
我正在使用 SceneKit 制作一个简单的 ARKit 应用程序,需要添加一些粒子效果。通常我可以创建一个 SceneKit 粒子文件,设计一些粒子效果并像这样使用它
let smoke = SCNParticleSystem(named: "xxx.scnp", inDirectory: nil)!
let hole = SCNNode()
hole.addParticleSystem(smoke)
Run Code Online (Sandbox Code Playgroud)
但从Xcode12开始,我只能创建后缀为.spritkit的SpritKit粒子文件.sks。上面的代码无法再使用此文件。我是 ARKit 的新手。谁能告诉我如何将粒子效果集成到我的 SceneKit 项目中?多谢。
如果你想在 3D 场景中使用 2D 粒子,有两种方法可以在 SceneKit 中显示 SpriteKit 场景。第一种方法是将 SKScene 指定为 SceneKit 几何体的材质:
\n// 2D scene\nlet skScene = SKScene()\n \nguard let emitter = SKEmitterNode(fileNamed: "sparks.sks")\nelse { return }\n \nemitter.position = CGPoint(x: 10, y: 25)\nemitter.targetNode = skScene\nskScene.addChild(emitter)\n \n// 3D scene\nlet plane = SCNPlane(width: 5, height: 5)\nplane.materials.first?.diffuse.contents = skScene\n\nlet planeNode = SCNNode(geometry: plane)\nsceneView.scene.rootNode.addChildNode(planeNode)\n \nRun Code Online (Sandbox Code Playgroud)\n第二种方法 \xe2\x80\x93 将 SKScene 分配给 SceneKit\ 的虚拟环境。
\nsceneView.scene.background.contents = skScene\nRun Code Online (Sandbox Code Playgroud)\n在 SceneKit 中处理粒子的常规方法是其原生粒子系统:
\nlet particleSystem = SCNParticleSystem()\nparticleSystem.birthRate = 50\n\nparticleSystem.particleSize = 0.5\nparticleSystem.particleLifeSpan = 10\nparticleSystem.particleColor = .green\n\nlet particlesNode = SCNNode()\nparticlesNode.addParticleSystem(particleSystem)\nsceneView.scene.rootNode.addChildNode(particlesNode)\nRun Code Online (Sandbox Code Playgroud)\n聚苯乙烯
\n还应该谈谈已弃用的预配置 SceneKitSCNP文件及其替换文件。
如果您想设置 3D 火焰等现象,最好的方法是 \xe2\x80\x93 在Scene graph. 为了获得更好的结果,请使用 2 或 3 个具有不同参数的粒子系统对象。
为了更好地了解如何基于png samples(源)设置 3D 火焰,请打开 Apple Motion 应用程序的场景,应用粒子发射器并选择“检查器”选项卡。然后,尝试在 SceneKit 的场景图中实现具有相同外观的火焰。
| 归档时间: |
|
| 查看次数: |
939 次 |
| 最近记录: |