/// <inheritdoc />
        public override void OnInspectorGUI()
        {
            EditorGUILayout.HelpBox("SLUI UNITY EVENT HELPER - This script is needed because of UnityEvents\n" +
                                    "design that is not allowing to get or set parameters.", MessageType.Info, true);

            EditorGUILayout.LabelField("Events", EditorStyles.boldLabel);
            _target.Items = JEMBetterEditor.ExperimentalList(_target.Items, _target, o =>
            {
                EditorGUILayout.BeginVertical();
                GUILayout.Label("Parameters", EditorStyles.boldLabel);
                o.obj = JEMBetterEditor.ExperimentalList(o.obj, _target, s =>
                {
                    s = EditorGUILayout.TextField(s);
                    return(s);
                }, new JEMBetterEditorStyle("Objects", $"{nameof(SLUIUnityEventHelperEditor)}.Obj_{_target.Items.IndexOf(o)}")
                {
                    FoldoutHeaderType = JEMBetterEditorHeaderType.None
                });

                CheckEvent(_target.Items.IndexOf(o), o.obj);
                EditorGUILayout.EndVertical();
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                return(o);
            }, new JEMBetterEditorStyle("Events", $"{nameof(SLUIUnityEventHelperEditor)}.Events")
            {
                FoldoutHeaderType = JEMBetterEditorHeaderType.None
            });

            var button = _target.GetComponent <Button>();

            if (button == null)
            {
                return;
            }
            if (_target.Items.Count != button.onClick.GetPersistentEventCount())
            {
                EditorGUILayout.HelpBox("Error. You have defined invalid amount of events.", MessageType.Error, true);
            }
        }