Syntax for EditorApplication.playmodeStateChanged

I would like to build an editor helper which sets my game to it’s first scene when I click play, regardless of which scene was open in the editor.

I thus need to detect when the editor’s playmode state changes, but the syntax for registering an editor delegate in C# currently has me stumped.

Many thanks to anyone who can provide sample code for playmodeStateChanged!

This code:

using UnityEngine;
using UnityEditor;
using System.Collections;

public class EditorHelper : EditorWindow {
	void playmodeStateChanged () {
		Debug.Log("State Changed!");
	}
}

results in this error:

ArgumentException: CompareBaseObjects  can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
UnityEngine.Object.op_Implicit (UnityEngine.Object exists)

As far as I can tell, what you do here is this-

using UnityEngine;
using UnityEditor;
using System.Collections;

public class EditorHelper : EditorWindow {

    public void Awake() {
        EditorApplication.playmodeStateChanged += PlaymodeCallback;
    }
    public void PlaymodeCallback () {
       Debug.Log("State Changed!");
    }
}

Also, I think you might be mistaken as to what is causing that error- that is usually caused when you try to use a constructor or something with a MonoBehaviour or other special Unity class!