How do I get objects to render against the skybox?

I’ve tried to modify the Diffuse shader to render the object behind everything else by setting the Queue=Background, RenderMode=Background, Set the Cull and ZWrite to different settings and a few other things as well. Changed the camera.renderingPath = RenderingPath.Forward as was suggested this thread, but nothing seems to work. The object always seems to render normally as if I was just using the regular Diffuse shader.

Here’s the current shader:

Shader "Background/Diffuse" {
Properties {
	_Color ("Main Color", Color) = (1,1,1,1)
	_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
	Tags { "Queue"="Background" }
	LOD 200

CGPROGRAM
#pragma surface surf Lambert

sampler2D _MainTex;
fixed4 _Color;

struct Input {
	float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
	fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
	o.Albedo = c.rgb;
	o.Alpha = c.a;
}
ENDCG
}

Fallback "VertexLit"
}

Any ideas?

FWIW, using Unity 4.0.1f2

In the end, I just created a skybox layer, set up a skybox camera with a skybox component that can only see that layer and set the depth on it to zero. Then anything that I want to be painted on the skybox just gets put in the skybox layer. The camera never moves relative to the objects in that layer, so they appear to be infinitely far away. All that was left then was to add a simple script to do a LateUpdate() that matches the rotation on the skybox camera with the main camera’s rotation.

Best part about this method is that I can use the same shaders on the skybox stuff as everything else.

You probably need to turn ‘ZTest’ to ‘Awlays’ and ‘ZWrite’ to ‘Off’