protected override void OnGUIInternal()
        {
            _prefsEnum.OnGUI();
            _prefsString.OnGUI();
            _prefsInt.OnGUI();
            _prefsFloat.OnGUI();
            _prefsFloat.OnGUISlider();
            _prefsBool.OnGUI();
            _prefsVector2.OnGUI();
            _prefsVector2.OnGUISlider();
            _prefsVector3.OnGUI();
            _prefsVector3.OnGUISlider();
            _prefsVector4.OnGUI();
            _prefsVector4.OnGUISlider();
            _prefsRect.OnGUI();
            _prefsRect.OnGUISlider();
            _prefsColor.OnGUI();


            _prefsIPEndPoint.OnGUI();

            // return true if value was changed
            if (_prefsColor.OnGUISlider())
            {
                // use as native type
                Color color = _prefsColor;
                Debug.Log("Changed. " + color);
            }


            // default OnGUI() is NOT user friendly. but PrefsList can save/load parametors.
            _prefsList.OnGUI();


            GUILayout.Label("PrefsListRuntimeGUI");
            GUIUtil.Indent(() =>
            {
                var list = _prefsListRuntimeGUI.Get();
                list.ForEach(customClass =>
                {
                    customClass.name     = GUILayout.TextField(customClass.name ?? "");
                    customClass.intValue = GUIUtil.IntButton(customClass.intValue);
                });
                using (var h = new GUILayout.HorizontalScope())
                {
                    if (GUILayout.Button("Add"))
                    {
                        list.Add(new CustomClass()
                        {
                            name = "Elem" + list.Count
                        });
                    }
                    if (GUILayout.Button("Remove"))
                    {
                        list.RemoveAt(list.Count - 1);
                    }

                    _prefsListRuntimeGUI.Set(list);
                    _prefsList.OnGUIDefaultButton();
                }
            });

            // if you use OnGUI. to set cumstomOnGUI is bettor.
            _prefsListCustomGUI.OnGUI();

            if (GUILayout.Button("Save"))
            {
                Prefs.Save();
            }
            if (GUILayout.Button("DeleteAll"))
            {
                Prefs.DeleteAll();
            }
        }