Unity 5 Standard Shader Transparent render order issues

I have a problem (obviously) with Unity 5’s standard shader. I have a model that i’m trying to fade in and out, but the render order is messed up:

I know semi-transparent objects aren’t compatible with the z buffer (or something like that) I know as a result, Unity’s fade/transparent shader modes have this problem quite often. I know I should avoid semi-transparent objects whenever I could

The issue is in this particular case, there’s no way around it. I can guarantee all the meshes I’m doing this with will be one piece, and the entire mesh will always have the same transparency, but I need the order to be correct.

When in the opaque rendering mode, the issue is gone, as you might expect:

I need the model to look exactly like this, but in the fade rendering mode with an alpha of 1

I’m good to hear any C# explanation, but I’m a complete shader noob. So if you explain any shader stuff, please talk to me like im a 5th grader lol.

Also, if there is a way around it, like I dunno, a canvas group or a camera trick or something, that would be even better

Thank you!

I had a very similar problem a few months ago. [Here is my topic][1] and it has the solution to what i did. Basically you have to change the shader to a transparent shader, Then once you’ve finished with that, set the shader back. (No need to make any new shaders)

To reset the Paper plane use:

private void RevertTransparent(GameObject g)
 {
     for (int i = 0; i < g.renderer.materials.Length; i++)
     {
         if (g.renderer.materials*.name == "Optimized Bark Material (Instance)")*

g.renderer.materials*.shader =*
Shader.Find(“Nature/Tree Creator Bark”);
else if (g.renderer.materials*.name ==*
“Optimized Leaf Material (Instance)”)
g.renderer.materials*.shader =*
Shader.Find(“Nature/Tree Creator Leaves Fast”);
else
g.renderer.materials*.shader = Shader.Find(“Default/Diffuse”);*
g.renderer.materials*.SetColor("Color", new Color(1,1,1));*
}
for (int i = 0; i < g.transform.childCount; i++)
SetTransparent(g.transform.GetChild(i).gameObject);
}
You’d need to change the name of the shader below also. On top of that you’ll come to a bug that when in a stand alone player (Built game) the shaders might turn pink. You’ll need to tell unity to add the shaders in a build game because it doesn’t. Go to Unity-Edit-Project settings-Graphics and you’ll see the “Always included Shaders”.
TADA! :stuck_out_tongue:
*[1]: http://answers.unity3d.com/questions/1285593/adjust-trees-transparencyopaquealpha-value.html*_