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); } } } }