Unity3D - 如何连续发射粒子?

问题描述 投票:1回答:2

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

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

在我升级项目之前,烟雾效果很好。我在导弹后面持续供应一些具有良好烟雾效果的粒子。我忘记了升级之前使用的Unity版本(我认为5.4),但是粒子系统的发射模块只有rate设置。

现在我已升级到5.6.1f1,我的烟雾中的颗粒被分开,就像从蒸汽火车出来的蒸汽一样:

enter image description here

排放模块现在有rate over timerate over distance。我玩过这些设置,但似乎没有任何东西适应我想要的。

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

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

(作为参考,这里是我希望我的粒子看起来如何,无论导弹行进的速度如何)enter image description here

unity3d particle-system
2个回答
0
投票

我曾经遇到过这个问题。粒子继承了父母的速度。我不记得它的位置,但是有一个名为“Emitter Velocity Scale”的属性应该设置为0。

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

关于粒子系统在特定更新中发生变化的答案也有答案。引用自this统一论坛帖子:

在粒子系统下单击渲染器选项卡将其打开,如果没有单击材料选项卡上的圆并选择默认粒子材料,则检查材料槽,然后它将正常工作。


0
投票

对于那些寻找同一问题答案的人,我找到了this的帖子。

“从Unity 5.5开始,使用发射率超过距离或继承速度(在我们的粒子效应资产中大量使用)并且是刚体(RB)对象的父级的粒子系统(PS)在拖动对象时似乎不起作用(使用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;

这给了类似的速度和烟雾没有分开。

© www.soinside.com 2019 - 2024. All rights reserved.