Unity 2018 now uses the Standard particle shaders by default (e.g.
Particles/Standard Unlit
), with transparency enabled by default using keyword _ALPHABLEND_ON/queue override. [edit:
Particles/Standard Surface
is also affected]
The shader does not specify a renderQueue, so it defaults to Geometry (2000). However, most blend settings require Transparent (3000) render queue.
As is widely known but not well documented, be it through a Unity bug or VRChat issue, either the upload or asset bundle load process resets all material renderQueue settings to From Shader. If done to Standard Particle shader, it would cause it to use alpha blending with queue 2000 which looks broken. See attached picture.
Just like Standard, it assigns keywords which can be used to detect the intended renderQueue after upload:
_ALPHABLEND_ON, _ALPHAPREMULTIPLY_ON and _ALPHAMODULATE_ON use Transparent (3000); _ALPHATEST_ON uses AlphaTest (2450)