Can render to screen, but can't render to renderTexture

hi everyone, I want to render something to a renderTexture by using functions of GL class, and then use this texture for render other things. I can get the correct result in rendering to screen, but can’t render to the renderTexture. How can I do it?
The script attached to mainCamera as follow, which with a diffuse material and a renderTexture draged to it.
(Forgive my poor English, and Thanks in advance :slight_smile: )

using UnityEngine;
using System.Collections;

public class RenderSomething2Texture : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
	
	public Material mat;
	public RenderTexture _renderTexure;
	public GameObject cube;
	
	//Failed to render to textue.
    void OnPreRender(){
		cube.GetComponent<MeshRenderer>().material.mainTexture = _renderTexure;
		
		RenderTexture.active = _renderTexure;
		
		float offset = 0;
		
        GL.PushMatrix();
		GL.LoadOrtho();
	
		//GL.LoadPixelMatrix(0, (int) RenderTextureSetting.kBumpTexSize, 0, (int) RenderTextureSetting.kBumpTexSize);
		//GL.Viewport(new Rect(0, 0, (float) RenderTextureSetting.kBumpTexSize, (float) RenderTextureSetting.kBumpTexSize));
		GL.Clear( false, true, Color.black );
		
        mat.SetPass(0);
        
		
        GL.Begin(GL.TRIANGLE_STRIP);
        GL.TexCoord2(offset, 1.0f + offset);
        GL.Vertex3(0.0f, 1.0f, 0.5f);
		
        GL.TexCoord2(1.0f + offset, 1.0f + offset);
        GL.Vertex3(1.0f, 1.0f, 0.5f);
		
        GL.TexCoord2(offset, offset);
        GL.Vertex3(0.0f, 0.0f, 0.5f);
		
        GL.TexCoord2(1.0f + offset, offset);
        GL.Vertex3(1.0f, 0.0f, 0.5f);
		
        GL.End();
		
        GL.PopMatrix();	 
	    RenderTexture.active = null;
	}	

	
	//Render to screen is OK.
    void OnPostRender(){
		float offset = 0;
		
        GL.PushMatrix();
		GL.LoadOrtho();
	
		//GL.LoadPixelMatrix(0, (int) RenderTextureSetting.kBumpTexSize, 0, (int) RenderTextureSetting.kBumpTexSize);
		//GL.Viewport(new Rect(0, 0, (float) RenderTextureSetting.kBumpTexSize, (float) RenderTextureSetting.kBumpTexSize));
		GL.Clear( false, true, Color.black );
		
        mat.SetPass(0);
        
		
        GL.Begin(GL.TRIANGLE_STRIP);
        GL.TexCoord2(offset, 1.0f + offset);
        GL.Vertex3(0.0f, 1.0f, 0.5f);
		
        GL.TexCoord2(1.0f + offset, 1.0f + offset);
        GL.Vertex3(1.0f, 1.0f, 0.5f);
		
        GL.TexCoord2(offset, offset);
        GL.Vertex3(0.0f, 0.0f, 0.5f);
		
        GL.TexCoord2(1.0f + offset, offset);
        GL.Vertex3(1.0f, 0.0f, 0.5f);
		
        GL.End();
		
        GL.PopMatrix();	 
	}		

}

I found the reason this was occurring in my situation… my RenderTexture was created with a depth buffer. Once I disabled the depth buffer associated with the render texture the problem went away.