U3d中制作的特效,在编辑模式下,不能多个一起播放预览,而且也没法跟着特效添加的动画一起播放。这里添加一个工具,实现在编辑模式下,能够播放选中的特效。

在编辑器模式下,我们会用到ParticleSystem的Simulate函数,此函数通过传入一个时间在控制播放粒子当前的位置。

system.Simulate(0.5,false,true);

参数1是粒子播放的时间,第二个参数是否一起播放子节点,第三个参数是说是否从头开始,如果是true,我们第一个参数就传入从开始到现在的时间长度。

由于在编辑模式下,我们需要一个Update驱动,我们可以注册一个事件在EditorWindow中,

EditorApplication.update += OnUpdate;

我们每次设置更新了粒子的时间,我们需要把对象设置位Dirty,否则会发现怎么粒子效果没用更新。

EditorUtility.SetDirty(selectedObj);

我们设置一下,就能强制更新此对象。这一点很重要。

其余没有什么特殊之处,我这边把工具代码附带在下面: