Changing OnGUI Texture to be behind another (GUI Rendered off of same script, different instance)

I looked into GUI.depth but it looks like it has to be in a different script’s OnGUI function to work. I am also using GUI Styles. Also looked into Texture Game Objects but that defeats the purpose of the Style

Is there any hope of getting one GUI Component to be in front of another if it’s in the same script and without GUITexture GOs?

If I understood you correctly, you want to have control over which of your gui elements are drawn and when they’re rendered? That is certainly possible. I’m currently working with a gui construct much like this:

using UnityEngine;
using System.Collections;

public abstract class AbstractGUI : MonoBehaviour {
	
	protected bool displayGUI = true;
	
	/**
	 * Sets displaying mode
	 **/
	public void SetToDisplay(bool display){
		displayGUI = display;
	}
	
	/**
	 * Called from the GUIManager's OnGUI.
	 **/ 
	public void DisplayGUI(){
		if (displayGUI)
			ShowContents();
	}
	
	/**
	 * Contains the implementation of the GUI
	 **/
	protected abstract void ShowContents();
	
}

All GUI elements inherit this abstraction.

I have a gui manager on a GameObject, who keeps a List of AbstractGUI which contains all instances of GUIs currently needed (the scripts(=instances) are added to the manager’s GameObject). It goes though this list in its OnGUI(), giving me full control over which element gets shown and in what order.

I believe GUI.depth does in fact only work from other scripts. If you want one texture drawn on top of the other within the same OnGUI, the last thing drawn is what goes on top.