MonoBehaviour.OnApplicationPause(bool)
Description

Sent to all game objects when the player pauses.

OnApplicationPause can be a co-routine, simply use the yield statement in the function. If it is implemented as a coroutine, it will be evaluated twice during the initial frame: first as an early notification and second time during the normal coroutine update step.
    var paused: boolean;

function OnGUI() { // Show a message if the game is paused. if (paused) { GUI.Label(new Rect(100, 100, 50, 30), "Game paused"); } }

function OnApplicationPause(pauseStatus: boolean) { paused = pauseStatus; }
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public bool paused;
    void OnGUI() {
        if (paused)
            GUI.Label(new Rect(100, 100, 50, 30), "Game paused");
        
    }
    void OnApplicationPause(bool pauseStatus) {
        paused = pauseStatus;
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public paused as bool

	def OnGUI() as void:
		if paused:
			GUI.Label(Rect(100, 100, 50, 30), 'Game paused')

	def OnApplicationPause(pauseStatus as bool) as void:
		paused = pauseStatus