u3d怎么让粒子的速度随生命的减少而下降

u3d怎么让粒子的速度随生命的减少而下降,第1张

Unity中的粒子系统使用起来还是比较方便的。不过在实际过程中遇到这样的一个问题:需要动态的来控制一个粒子系统组件所能产生的最大粒子数。看doc上说是有maxParticles来控制,但实际上却没有这个开放的参数,只能通过其它的方式来实现。
这里可以通过手动产生粒子的方式来实现,也即ParticleSystem中的Emit方法,具体代码如下:
[csharp] view plain copy
public class ParticleSystemComp : MonoBehaviour
{
ParticleSystem mParticleSystem = null;
int mMaxParticles = 0;
public int maxParticles
{
get
{
return mMaxParticles;
}
set
{
mMaxParticles = value;
}
}
void Awake()
{
mParticleSystem = thisgameObjectGetComponent<ParticleSystem>();
mParticleSystememissionRate = 00f;
mMaxParticles = mParticleSystemparticleCount;
mParticleSystemClear();
}
void Update()
{
if (mParticleSystem != null)
{
if (mParticleSystemparticleCount < mMaxParticles)
{
mParticleSystemEmit(mMaxParticles - mParticleSystemparticleCount);
}
}
}
}
实现过程是对于每个ParticleSystem添加一个额外的组件,通过该组件来原始PS的更新。其中的更新原则是判断当前活动的粒子数量,如果粒子数小于指定的最大值的话就再重新生成几个新的粒子出来进行填充。
此外,出于性能考虑,其中Update内部的 *** 作也可以移至FixedUpdate中进行以减少更新次数,但是视觉上并不会带来太大的差异。

一、偏向不同

1、u3d:Unity3D适合开发手游,UE4更适合对于动画,美术感兴趣的设计师。

2、ue4:Unity3D侧重轻量级的开发,偏向于移动端,所以在手游方面的开发是非常强大的,现在市面上有很多手游都是基于Unity3D开发的。

二、优势不同

1、u3d:这种标准将使3D更容易结合到网络浏览器、手机浏览器等其它应用程序中,使3D图像能够更广泛地普及,从而促进对更快的处理器和图形芯片的需求。

2、ue4:UE4的渲染效果算得上是一流的,给玩家的用户体验更好,比如端游《绝地求生大逃杀》和手游《和平精英》就是用UE4开发的。

三、劣势不同

1、u3d:即使通过特定程序能够打开,也是以牺牲大量编辑修改功能作为代价,尤其是三维文件一般都体积巨大,无法通过互联网传播、浏览。

2、ue4:ue4每一次迭代都会随之附加大量的新功能与新插件,很难全部掌握UE4的所有功能的应用方式。虽然有意思吹捧的意味,但是过多的功能会使得新手学习时出现选择困难,导致真正学得下去的人少之又少。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/12948428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存