How to put opacity in mobile/diffuse

Please someone give me an idea .

I have find a bit ugly (in hard code meaning) solution but in my case it was fastest solution.

public float fadeoutSpeed = 0.1F;
 
bool fadeOutDone = false;
        
Shader transparentShader, diffuseShader;
    
void Start()
{
	fadeOutDone = false;
	transparentShader = Shader.Find("Legacy Shaders/Transparent/Diffuse");
	diffuseShader     = Shader.Find("Mobile/Diffuse");

	StartCoroutine(FadeOut());
}
        
IEnumerator FadeOut()
{
	float a = 0F;

	var allChildren = GetComponentsInChildren<Transform>();

	List<SkinnedMeshRenderer> mRenderList = new List<SkinnedMeshRenderer>();

	int mLen = allChildren.Length;

	for (int mr = 0; mr < mLen; ++mr)
	{
		if (allChildren[mr].gameObject.GetComponent<SkinnedMeshRenderer>())
		{
			var m = allChildren[mr].gameObject.GetComponent<SkinnedMeshRenderer>();
			m.material.shader = transparentShader;
			m.material.color = new Color(1, 1, 1, 0);
			mRenderList.Add(m);
		}
	}
        
	while (!fadeOutDone)
	{
		if (a < 1.0F)
		{
			foreach (var child in mRenderList)
			{
				child.material.color = new Color(1, 1, 1, a);
			}
		}
		else
		{
			fadeOutDone = true;

			for (int mr = 0; mr < mLen; ++mr)
			{
				if (allChildren[mr].gameObject.GetComponent<SkinnedMeshRenderer>())
				{
					var m = allChildren[mr].gameObject.GetComponent<SkinnedMeshRenderer>();
					m.material.shader = diffuseShader;
					mRenderList.Add(m);
				}
			}
		}

		a += Time.deltaTime * fadeoutSpeed;
		yield return new WaitForSeconds(fadeoutDelay);
	}
	
	yield return null;
}