Batching same material different UV coordinates

I’m working on a game where I have about 60-80 enemies on the screen at once. (for Android)
It’s working fine, but there is some noticeable lag because the enemies are not batching.

Here is my setup:
All enemies are simple planes with the texture projected on them.
I have an atlas texture 2048x2048 which contains all the enemy models.
I have 1 material Unlit / Transparent Cutout which contains that 1 texture.
Every type of enemy is a prefab.

The problem is, I made a script which on Awake sets the UV coordinates on the prefab to the specified UV.
This breaks batching, because on awake I always set the UV.
Now if I remove the script and just manually set the Tiling and Offsets, batching is working fine, but of course all my other prefabs will use the same UV because it’s the same material.

In worst case, I can make 12 materials for all 12 enemies, which will give me extra 12 draw calls.
But is there an easier way to keep the same material, but different UV coordinates? In order to keep the draw calls down to 1-2.

Hello johnnydj. I can recommend you, to try my texture packer extension. It has free version.

For example this entire scene with almost 100 objects and 50 animations has only 1 Draw Call, 1 Texture, and uses only 1MB of memory.
Here is web player preview
https://dl.dropboxusercontent.com/u/83133800/TexturePacker/3D/build.html

And how to use Tutorilal