Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

GL.PushMatrix

static function PushMatrix(): void;
static void PushMatrix();
static def PushMatrix() as void

Description

Saves both projection and modelview matrices to the matrix stack.

Changing modelview or projection matrices overrides current camera's parameters. These matrices can be saved and restored using GL.PushMatrix and GL.PopMatrix.

See Also: PopMatrix function.

	// Draw a yellow line from the botton left to the
	// top right of the screen
	var mat : Material;

function OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); // Save the current state mat.SetPass(0); GL.LoadPixelMatrix(); GL.Color(Color.yellow); GL.Begin(GL.LINES); GL.Vertex3(0,0,0); GL.Vertex3(Screen.width, Screen.height,0); GL.End(); GL.PopMatrix(); // Pop changes. }

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Material mat;
    void OnPostRender() {
        if (!mat) {
            Debug.LogError("Please Assign a material on the inspector");
            return;
        }
        GL.PushMatrix();
        mat.SetPass(0);
        GL.LoadPixelMatrix();
        GL.Color(Color.yellow);
        GL.Begin(GL.LINES);
        GL.Vertex3(0, 0, 0);
        GL.Vertex3(Screen.width, Screen.height, 0);
        GL.End();
        GL.PopMatrix();
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public mat as Material

	def OnPostRender() as void:
		if not mat:
			Debug.LogError('Please Assign a material on the inspector')
			return
		GL.PushMatrix()
		mat.SetPass(0)
		GL.LoadPixelMatrix()
		GL.Color(Color.yellow)
		GL.Begin(GL.LINES)
		GL.Vertex3(0, 0, 0)
		GL.Vertex3(Screen.width, Screen.height, 0)
		GL.End()
		GL.PopMatrix()