Make playmode changes persist,I want changes made during playmode to stick in the editor. I can't to this even with SetDirty

Custom Editor :
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Sitting_down))]
public class CustomChair : Editor
{
    Sitting_down sit;
    private void OnEnable()
    {
        sit = (Sitting_down)target;
    }
    int a;
    public override void OnInspectorGUI()
    {
       
        DrawDefaultInspector();
        EditorGUI.BeginChangeCheck();
        if (GUILayout.Button("Set position for sit"))
        {
            a = 123454; 
        }
        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "a");
            sit.a = a;
        }
    }
}   

Sitdown:

using UnityEngine;
[System.Serializable]
public class Sitting_down : MonoBehaviour
{
    public int a;
}

I want changes to a to persist. If I play and click the button var ‘a’ changes. But when I exit playMode it is back to 0. Another way I seached the web for setdirt than undo.record. none work
What happens : I enter play mode, I set ‘a’ to something like 10. And when I exit playmode a is still default 0

There is no build in way, as far as i know, to save changes during play mode. If this is something you want, you will have to write the code for it yourself. By saving the variables in a file or prefs when exiting playmode and loading them back when you press play again. There is also this website that seems to have a solution: Heaven's Vault updates — Unity - Saving changes made in Play Mode!. Never used it, don’t know if it works, but it was just one google search away.


In my opinion, this is not something you would need to have. Instead of saving in playmode, you could try to represent playmode while not in playmode, with creating custom editors and variables that update when changes are made in the inspector. This is actually easier than the other way around and there also a lot of examples on this topic.