void SyncToggleList(PrefsGUISyncUNET sync, IEnumerable <PrefsParam> prefsList)
        {
            if (sync != null)
            {
                var keys     = prefsList.Select(p => p.key).ToList();
                var syncKeys = keys.Except(sync.ignoreKeys);

                var isSync = PrefsGUIEditorBase.ToggleMixed(syncKeys.Count(), keys.Count);
                if (isSync.HasValue)
                {
                    Undo.RecordObject(sync, "Change PrefsGUIs sync flag");
                    EditorUtility.SetDirty(sync);

                    if (!isSync.Value)
                    {
                        sync.ignoreKeys.AddRange(syncKeys);
                    }
                    else
                    {
                        foreach (var key in keys)
                        {
                            sync.ignoreKeys.Remove(key);
                        }
                    }
                }
            }
        }
 public void GUIHeadLine()
 {
     sync = Object.FindObjectOfType <PrefsGUISyncUNET>();
     if (sync != null)
     {
         GUILayout.Label("Sync");
     }
 }
        void SyncToggle(PrefsGUISyncUNET sync, PrefsParam prefs)
        {
            if (sync != null)
            {
                var key    = prefs.key;
                var isSync = !sync.ignoreKeys.Contains(key);

                if (isSync != GUILayout.Toggle(isSync, GUIContent.none, PrefsGUIEditorBase.ToggleWidth))
                {
                    Undo.RecordObject(sync, "Change PrefsGUI sync flag");
                    EditorUtility.SetDirty(sync);

                    if (isSync)
                    {
                        sync.ignoreKeys.Add(key);
                    }
                    else
                    {
                        sync.ignoreKeys.Remove(key);
                    }
                }
            }
        }