12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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<UIToggle>();
- 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<GameObject> activate;
- public List<GameObject> deactivate;
- [HideInInspector]
- [SerializeField]
- private GameObject target;
- [HideInInspector]
- [SerializeField]
- private bool inverse;
- }
|