Unity3D - 如何连续发射粒子?

Unity3D - How to have continuous particle emission?

我最近将我的项目升级到 5.6.1f1。

我有一个跟踪目标的制导导弹,并附有一个粒子系统来模拟烟雾。

之前我升级了项目,烟雾效果很好。我在导弹后面有源源不断的粒子,有很好的烟雾效果。忘记升级前用的Unity是哪个版本了(我记得是5.4),但是粒子系统的发射模块只有一个rate设置

现在我已经升级到 5.6.1f1 了,我的烟雾颗粒分离了,就像蒸汽火车中冒出的蒸汽:

发射模块现在有 rate over timerate over distance。我已经尝试过这些设置,但似乎没有任何东西可以根据我的需要进行调整。

我已经缩小到我的导弹以非常高的速度飞行的事实。如果导弹行进速度较慢,则粒子看起来会更好。但是,导弹就是导弹,像我的其他物体一样飞得很快。在我使用的以前版本的Unity中(我认为是5.4),导弹的速度并没有影响粒子的发射。

所以,我想我的问题是:如何连续发射不受速度影响的粒子?

(作为参考,这是我希望我的粒子看起来的样子,不管导弹的行进速度如何)

我曾经遇到过这个问题。粒子继承 parents 速度。我不记得它位于何处,但有一个名为 "Emitter Velocity Scale" 的 属性 应设置为 0。

这应该位于粒子系统本身的某处。

还有一个关于特定更新中粒子系统发生变化的答案。引自 this 统一论坛 post:

Under the particle system click the renderer tab to open it, check the material slot if it says none click the circle on the material tab and choose the Default Particle Material and then it will work right.

对于寻找相同问题答案的任何人,我发现 this post。

“从 Unity 5.5 开始,粒子系统 (PS) 在距离上使用发射率或继承速度(这两者在我们的粒子效果资产中大量使用)并且是刚体 (RB) 对象的父级当您拖动对象(使用 RB 组件)或更改变换组件中的位置值时,显示不起作用。

原因是 RB 速度覆盖了任何形式的位置转换,以将速度值提供给需要速度数据才能正常工作的 PS 模块。简而言之,您应该使用Rigidbody.velocity(甚至不是用于检测边界的Rigidbody.position)而不是Transform。position/Translate来移动对象。“

我只是改了:

transform.position += transform.forward * speed * Time.deltaTime;

rb.velocity = transform.forward * speed * 40 * Time.deltaTime;

这给了相似的速度并且烟雾没有分离。