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.
Your answer
 
             Follow this Question
Related Questions
Unity Custom Editor: 1 True Bool Only Within A Group 1 Answer
Custom inspector Vs. Custom window 2 Answers
Use placeholder text in CustomEditor 0 Answers
No type in ObjectField created in uxml (UIElements) 3 Answers
How can I modify 'SerializedProperty' that contain 'Array' in Custom inspector? 0 Answers