I have up to 1000 visible GameObjects
with trivial plane meshes, which are essentially sprites/billboards and which should always face in the relative direction -camera.forward
.
There are so many ways to do this that I have trouble sorting the good ways from the bad ones.
- The straightforward way is to use a geometry shader, but that isn't supported on most devices, so that's out.
- Using a script is nice, easy, simple, and wasting performance.
- Using a vertex shader and passing in center coordinate of the billboard through properties feels clean but is wasting even more performance because it breaks batching.
- Doing it in a vertex shader and passing in center coordinate of the billboard through through
uv2
feels brittle and wrong, but will be the most performant.
Ideally, someone has a better solution. If not, maybe someone can make a convincing argument for one of the approaches?
Related: Rotate object to always face camera, Efficient billboarding sprites in Unity 5