How to change drawcall order?

Anyone know how to reorder drawcall order? All must draw like this:

  1. Terrain, mountain, big cliffs,
    rocks, well the landskape in one
    words.
  2. Vegetation (grass, trees and etc).
  3. Big object like a house, big wall,
    roads.
  4. Medium object like a fence, farway
    object, lods.
  5. Small object
  6. The main character
  7. water
  8. Alphatest
  9. Transparent
  10. Skybox
  11. Shadow job.
  12. Atmosphere scattering, volume fog
    and etc.
  13. Post processing
  14. Output frame.

But without draworder it draw like this, absolute chaotic and random.
Draw terrain, drop it when draw 10%, start draw farway lods, again drop it on 24%
draw trees, drop it at 50% start draw terrain again. This switching just messing up render, and bandwich between GPU and CPU became bottle neck
Also it ruin instancing and batching cuz it draw object randomly.

Hello, you are searching for Render Queue standart unity shaders does not reveal this setting but with an easy fix you can change your render order.

You can modify your shader by just adding queue tag, here some documentation for it.
SubShader Tags

if you are not comfortable with shaders you can also change this property from a script. Material.RenderQueue stands for it. you may also check here for properties: 4

I hope this helps, if you need more help, just comment below.

EDIT : Oh I forgot to mention about New Scriptable Render Pipeline I have no idea what is this, I did not test it out yet but, just wanted to mention as it may help your situation