Swift:如何使用 SCNParticleSystem 设置粒子效果的大小?

标签 swift scenekit particle-system arkit

我有一个简单的 ARKit 应用程序(使用 SceneKit),立方体漂浮在我与其他物体一起拍摄的空间中。我使用 Fire 作为模板创建了 .scnp 文件,并将其自定义为看起来有点像爆炸。

一切看起来都很好并且可以碰撞,但我的整个粒子效果占据了整个屏幕。我尝试了 .scnp 文件中可用的所有属性,但大小仍然很大。

如何设置效果区域大小?例如比我的立方体稍大(宽度为 0.1 米)。

爆炸是这样运行的:

let fire = SCNParticleSystem(named: "explosion.scnp", inDirectory: nil)

contactNode.addParticleSystem(fire!)

contactNode 是我的目标立方体。

最佳答案

您要查找的粒子系统属性是 particleSize . (在 Xcode 粒子系统 GUI 编辑器中有一个用于设置该属性的控件,但我忘记了它的标签...)

该属性的文档说:

The rendered size, in units of the scene’s world coordinate space, of the particle image.

在 ARKit 中,场景单位与现实世界的米相同。因此,虽然 10x10 的粒子大小在某些任意场景中可能有意义,但在 AR 中,每个粒子的大小都与房屋一样大。您可能需要毫米到厘米范围内的值(0.001 - 0.01)。

关于Swift:如何使用 SCNParticleSystem 设置粒子效果的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45914064/

相关文章:

ios - 警告 : Attempt to present <UIAlertController: 0x7facd3946920> on <. ..> 已经呈现(空)

swift - 在 ARKit/RealityKit 中同时使用水平面和垂直面

swift - 使用 SCNGeometryPrimitiveType 多边形崩溃/错误创建自定义 SCNGeometry 多边形平面

ios - 为什么 SCNPhysicsContact.collisionImpulse 总是 0.0?

c++ - SDL_FillRect 不绘图?

ios - 3D AR 绘图应用程序在绘图时出现滞后和帧速度显着下降

ios - 在 Swift 中使用 PFQueryTableViewController 检查互联网连接

swift - 在第一次加载 requestAuthorization 之后,viewDidLoad 的其余部分未执行,下一行跳转到委托(delegate)函数 (swift 3)

ios - 在 Spritekit 中加载粒子纹理时出错?

unity3d - Unity 中的物理与纸板场景困惑