commandbuffer can't get depth buffer in forward rendering but correct in Deferred .Why?

public void Awake()
{
MainCamera = GetComponent ();
MainCameraRT = RenderTexture.GetTemporary (Screen.width, Screen.height, 24);
depthTexture = Texture2D.CreateExternalTexture (Screen.width, Screen.height, TextureFormat.RGB24, false, false, MainCameraRT.GetNativeDepthBufferPtr ());
cmdBuffer = new CommandBuffer();
cmdBuffer.name = “cmdBuffer”;

		cmdBuffer.SetRenderTarget(BuiltinRenderTextureType.CurrentActive);
		cmdBuffer.ClearRenderTarget(false,true,Color.blue);
		cmdBuffer.Blit (BuiltinRenderTextureType.CurrentActive, MainCameraRT);

		MainCamera.AddCommandBuffer(CameraEvent.AfterSkybox, cmdBuffer);

	}

[98598-qq截图20170728170128.png|98598]

98599-qqq.png

I would like to know the answer to this as well. I am begging to suspect that the answer is manually redraw the scene using a depth material.