Can Unity Compile The Shader At Runtime?

I want to change the render queue at runtime. Meanwhile, I use a built-in shader of unity, just like sprite/default.But I can not change the shader’s render queue at the runtime, there is no effect on my gameObject which has a material with this shader? I wonder whether unity not compile the shader at runtime? Besides, why particles shader just like Alpha Blended can change the render queue at runtime?

If you want to change the renderQueue, you can try Material.renderQueue.

If you still want to compile shaders at runtime, look at Material.ctor

	// Creates an additive-blended material and uses it for rendering
	var color = Color.white;
	function Start () {
		var shaderText =
			"Shader \"Alpha Additive\" {" +
			"Properties { _Color (\"Main Color\", Color) = (1,1,1,0) }" +
			"SubShader {" +
			"	Tags { \"Queue\" = \"Transparent\" }" +
			"	Pass {" +
			"		Blend One One ZWrite Off ColorMask RGB" +
			"		Material { Diffuse [_Color] Ambient [_Color] }" +
			"		Lighting On" +
			"		SetTexture [_Dummy] { combine primary double, primary }" +
			"	}" +
			"}" +
			"}";
		renderer.material = new Material( shaderText );
		renderer.material.color = color;
	}

Yes, look at the material constructor here (Material ctor), it takes the shader as a string.