ios - 为 SceneKit ParticleEngine 粒子设置重力
问题描述
我只是在尝试使用 SceneKit 作为通过 3D 渲染方法的持续迁移。我玩过 SceneKit,它通常像宣传的那样。一个麻烦的方面(对我来说)是,虽然我可以通过 UI 或代码创建粒子引擎,但我不知道如何为通过代码创建的粒子设置引力场。
工作代码在这里:https ://github.com/rkwright/ParticleTest 。适用于 XCode 12.3 和 iOS 15.3
这是通过代码设置 ParticleEngine 的函数。
func createTrailCode( color: UIColor ) -> SCNParticleSystem {
let particleSystem = SCNParticleSystem()
particleSystem.birthRate = 5000
particleSystem.particleLifeSpan = 1
particleSystem.warmupDuration = 1
particleSystem.emissionDuration = 500.0
particleSystem.loops = false
particleSystem.particleColor = color
particleSystem.particleSize = 0.25
particleSystem.birthDirection = .random
particleSystem.speedFactor = 7
particleSystem.emittingDirection = SCNVector3(0,1,1)
particleSystem.emitterShape = .some(SCNSphere(radius: 2.0))
particleSystem.spreadingAngle = 30
particleSystem.particleImage = "star"
particleSystem.isAffectedByGravity = true
particleSystem.acceleration = SCNVector3(0.0,-1.8,0.0)
return particleSystem
如果您运行演示,您将看到从 scnp 文件创建的 ParticleEngine 工作正常,并且粒子在重力拉动时缓慢下降。但是对于使用代码(上图)创建的引擎,无论重力或加速度设置为多少,粒子都会立即缩小场景。
仍在戳这个,但任何建议将不胜感激。TIA
解决方案
推荐阅读
- azure-devops - Azure DevOPS:重新部署旧版本(仅一个阶段)未部署旧更改
- react-native - 应用程序进入后台时动画平面列表插值问题
- python - 在 python 循环中运行 bash 命令
- python-3.x - 在训练顺序张量流和 keras 模型中记录时间步长
- mysql - MySQL - 选择匹配所有值的记录
- c - 使用一个目标文件,该目标文件正在使用新内核上的新内核删除的内核函数?
- python - 根据 Pandas 中列的内容将列拆分为多列
- javascript - Google Chart not 100% of div width - 包含事件侦听器以从代理表重绘图表
- javascript - Javascript cloneNode innerText 不读取
为 \n - macos - DriverKit 是否适用于自定义 USB 设备来控制麦克风音量(无流)?