VFX Graph
https://www.youtube.com/watch?v=Xwmdl4sbsjY
メモ
Randomのseedをper componentにしつつ、ParticleId mod 10をseedにするとパーティクル10個ごとに同じ乱数を使える
https://www.youtube.com/watch?v=6Ff7S4ocNGs
ParticleStripでTrailをやるのはこの動画が良い
https://www.youtube.com/watch?v=iCEHarLRCzI
Visual Effect Graphともいう
ShaderGraphと連携できる
ShaderGraphでプロパティをExposeするとVFXGraph側から操作できる
age over lifetimeを渡せばパーティクルの生成時間に0になってる時間がとれるのでアニメーションが簡単に組める
乱数系もVFXGraphから渡すと良さそう
velocityとかも取れるわね...
Output Event
パーティクルの生成イベントをCPU側で取得できる
最初の生成イベントのみで、GPU Eventは取れないので注意
CPU側からBurstを呼ぶような場合だとそもそも不要そう
VisualEffect.Reinit
C#でVFXを初期化できる
lifetimeが無限なパーティクルの生成時にしか使わないパラメータをランタイムで更新したときに初期化するのに使う
Periodic BurstのDelayとlifetimeに合わせることでも(ラグがあるとはいえ)同じことを再現できるがCapacityの半分までしか生成できなさそうなのでReinitをした方がよさそう
Spawnイベントにパラメータを渡す
VFXEventAttribute を使う
PropertyをIntializeのフェーズでだけ使う、でも代用できるかもしれないけど、EventAttributeを使う方が正攻法っぽい
ExposedPropertyをC#から取得する