本文使用的VEG版本为8.2.0
Unity ParticleSystem 要发射世界空间的粒子只需要将 Simulation Space 修改为World即可
但是Unity新版的粒子系统(Visual Effect Graph)是连连看的形式,没有这个选项,那怎么才能像传统的粒子系统那样发射世界空间的粒子呢?目前我所知道的有两种方法。
1.利用VFX Property Binder 脚本实现
(1) 首先打开VFX的编辑窗口,将block右上角的Local修改为World(点击Local图标即可切换)
(其实只需要点击Initialize Particle右上角的就可以了,这个点击之后下面的会自动切换)。
(2) 然后在Initialize Particle面板添加Set Postion模块
(3)然后添加一个Vector3 类型的变量并和Set Position 模块的Position相连
(4)给这个VEG粒子添加VFX Property Binder脚本,并绑定Position
这样VEG就具有和Particle Systerm 将Simulation Space 修改为World后同样的效果了。
2.第二种方法挂载任何脚本,在VFX编辑窗口将粒子从Local变为World,具体操作如下:
前两步和上面一样,也是先将各个Block右上角的Local改为World,然后在Initialize Particle面板添加 Set Position 模块。然后就是将 VFX 的 Position 从 Local 变为 World 再和 Set Position 模块相连 。这里我就直接上截图了。
这样做完之后保存就可以了。
有可能你在做完这些之后发现没效果,这个时候你可以手动保存一下,或者关掉VFX的编辑窗口重新打开,或者将Block右上角的World改为Local然后再改回来,这样应该就行了。出现这种情况可能是Unity没及时刷新。
第二种方法是我从Unity官方的VFX示例中看到的。