Change the value of a property of the selected game object (Selection.activeGameObject) through custom editor

Hi guys. I am working on a code less game engines (similar concept to RPG Maker) using Unity’s editors. We have our own custom Inspector in this project. One of the things

I want to do is change the value of a property of an object through this custom inspector. It changes, but as soon as I hit the play button it resets the value.

My class inherits from monobehaviour and I am changing an integer property (so as far as I know, I don’t have to worry about serialization).

Is this because I am getting the object through Selection.activeGameObject?

Does changing a static object makes any difference?

Here is a glimpse of the code:

Class:

public class Troop : MonoBehaviour
{
    public int AreaWidth;
    public int AreaHeight;
}

Custom Editor:

public class RPGInspectorUI : EditorWindow {    
	void OnGUI() 
	{
        if (MapEditor.selectedObject != null)
        {
            var troop = Selection.activeGameObject.GetComponent<Troop>();

            if (troop != null)
            {
                GUILayout.Label("Area:", EditorStyles.boldLabel);
                troop.AreaWidth = EditorGUILayout.IntField("Width:", troop.AreaWidth);
                troop.AreaHeight = EditorGUILayout.IntField("Height:", troop.AreaHeight);
            }
        } 
    }

One last thing… If I change the values through Unity’s inspector it works after I hit Play.

BUMP!! Anyone?