Custom Editor not saving static variable after Play

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