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