public override VisualElement CreateInspectorGUI() { m_Scenario = (ScenarioBase)target; m_SerializedObject = new SerializedObject(m_Scenario); m_Root = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>( $"{StaticData.uxmlDir}/ScenarioBaseElement.uxml").CloneTree(); CreatePropertyFields(); CheckIfConstantsExist(); var serializeConstantsButton = m_Root.Query <Button>("serialize-constants").First(); serializeConstantsButton.clicked += () => m_Scenario.Serialize(); var deserializeConstantsButton = m_Root.Query <Button>("deserialize-constants").First(); deserializeConstantsButton.clicked += () => m_Scenario.Deserialize(); return(m_Root); }