SetPass(0)
の位置をDrawProceduralNowの直前にしないと particlesBufferのバッファーが空になったりすることがあるらしい.Spoutに切り替えり,戻したときに最初の切り替え時はBufferやSetFloatで設定した値などが空になっていたが,下のようにSetPass(0)を正しい位置に変更すると,ただしく値が渡されるようになる.
this.particlesMaterial.SetBuffer(ShaderIDs.ParticlesBuffer, this.particlesBuffer);
this.particlesMaterial.SetPass(0); //描画開始位置らしい?
Graphics.DrawProceduralNow(MeshTopology.Points, this.particlesBuffer.count);