How do I place GUI text in front of GUI texture?

So long story short, I have a GUI texture that fades in and out when it enters a trigger collider and GUI text that types out the message when it hits the same collider - so I want them to function at the same time, which is all working fine. The problem I’m having is that the texture appears in front of the text and I want it the other way around. I know it’s because the texture script uses OnGUI and that is always in front but I’m not sure which script to change. I tried playing with GUI.depth but that was unsuccessful. Any suggestions/advice would be greatly appreciated!

Here is the script for the texture:

public var fadeInTexture : Texture2D;
public var fadeSpeed = 1.0;
 
var drawDepth = 1000;
var alphaWait : boolean = true;

private var alpha = 0.0;
 
private var fadeDir = -1;
 

function OnGUI(){
 
   if(alphaWait == false) {
   
    alpha += fadeDir * fadeSpeed * Time.deltaTime;
    }
   
    alpha = Mathf.Clamp01(alpha);  
   
    GUI.color.a = alpha;
   
    GUI.depth = drawDepth;
   
    GUI.DrawTexture(Rect(0, 0, Screen.width, Screen.height), fadeInTexture);

	
}
 
 
function fadeIn(){
 
    alphaWait = false;
 
    fadeDir = -1;  
}
 
 
function fadeOut(){
    fadeDir = 1;  
   
 
}

function OnTriggerEnter (Col : Collider)
{
	if(Col.tag == "Player")
	{
		fadeOut();
		
	}
}

function OnTriggerExit (Col : Collider)
{
	if(Col.tag == "Player")
	{
		fadeIn();
	}
}

And here is the script for the text:

var letterPause = 0.03;
var sound : AudioClip;

var drawDepth = 1000;
 
private var message : String;


function OnTriggerEnter (Col : Collider)
{
	if(Col.tag == "Player")
	{
	
		SetText("Text shown...");
		
	}
}

function OnTriggerExit (Col : Collider)
{
	if(Col.tag == "Player")
	{
		SetText(" ");
	}
}


 
function TypeText () {
    for (var letter in message.ToCharArray()) {
       
	   guiText.text += letter;
       if (sound)
         audio.PlayOneShot (sound);
       yield WaitForSeconds (letterPause);
    }   
}

function SetText(text : String)
{
	GUI.depth = drawDepth;
    StopCoroutine("TypeText");
    message = text;
    guiText.text = "";
    StartCoroutine("TypeText");
}

Which is on top depends on the ‘z’ parameter…the one with the highest ‘z’ wins. That is, the ‘z’ parameter is not use the same way it would be use for standard game objects.