Is there a callback function or event for a resolution change?

Is there an event that is raised or a function that is called when the screen resolution changes?

I do not wish to poll for Screen parameters.

I’m sick of trying to get this to format properly on this horrible site. PM me on the forum if you want better copy pasta.

  ScreenExtensions.ResolutionChanged += resolution => Debug.Log(resolution.width);
    new Resolution { width = 800, height = 500 }
    	.ApplyToScreen(true);

namespace UnityEngine
{	
	using System;

	public static class ScreenExtensions
	{
		public static event Action<Resolution> ResolutionChanged;

		public static void ApplyToScreen(this Resolution resolution, bool fullscreen)
		{
			Screen.SetResolution(resolution.width, resolution.height, fullscreen, resolution.refreshRate);
			if (ResolutionChanged != null)
				( (Action)(() => ResolutionChanged(resolution)) )
					.PerformAfterCoroutine<WaitForEndOfFrame>();
		}
	}

}

namespace System
{

using System.Collections;
using UnityEngine;

public static class ActionExtensions
{
	public static void PerformAfterCoroutine<T>(this Action action)
		where T : YieldInstruction, new()
	{
		CoroutineBehaviour.StartCoroutine<T>(action);
	}
}

}

namespace UnityEngine
{	
	using System;
	using System.Collections;

	public static class MonoBehaviourExtensions
	{
		/// <summary>
		/// Performs an Action after a YieldInstruction. 
		/// </summary>
		public static void StartCoroutine<T>(this MonoBehaviour monoBehaviour, Action action)
			where T : YieldInstruction, new()
		{
			monoBehaviour.StartCoroutine(Coroutine<T>(action));
		}

		static IEnumerator Coroutine<T>(Action action) where T : YieldInstruction, new()				
		{
			yield return new T();
			action();
		}
	}

	public class CoroutineBehaviour : MonoBehaviour 
	{
		static MonoBehaviour Instance = new GameObject { hideFlags = HideFlags.HideAndDontSave }
			.AddComponent<CoroutineBehaviour>();

		public static void StartCoroutine<T>(Action action) where T : YieldInstruction, new()
		{
			Instance.StartCoroutine<T>(action);
		}
	}
}

Nothing built-in that I know of. You will most likely have to raise an event yourself whenever your ChangeResolution(Screen size) or whatever method you use gets called.