using System; using System.Collections.Generic; using UnityEngine; [AddComponentMenu("NGUI/Interaction/Toggled Objects")] public class UIToggledObjects : MonoBehaviour { private void Awake() { if (this.target != null) { if (this.activate.Count == 0 && this.deactivate.Count == 0) { if (this.inverse) { this.deactivate.Add(this.target); } else { this.activate.Add(this.target); } } else { this.target = null; } } UIToggle component = base.GetComponent(); EventDelegate.Add(component.onChange, new EventDelegate.Callback(this.Toggle)); } public void Toggle() { bool value = UIToggle.current.value; if (base.enabled) { for (int i = 0; i < this.activate.Count; i++) { this.Set(this.activate[i], value); } for (int j = 0; j < this.deactivate.Count; j++) { this.Set(this.deactivate[j], !value); } } } private void Set(GameObject go, bool state) { if (go != null) { NGUITools.SetActive(go, state); } } public List activate; public List deactivate; [HideInInspector] [SerializeField] private GameObject target; [HideInInspector] [SerializeField] private bool inverse; }