123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- using System;
- using UnityEngine;
- [AddComponentMenu("NGUI/Interaction/Saved Option")]
- public class UISavedOption : MonoBehaviour
- {
- private string key
- {
- get
- {
- return (!string.IsNullOrEmpty(this.keyName)) ? this.keyName : ("NGUI State: " + base.name);
- }
- }
- private void Awake()
- {
- this.mList = base.GetComponent<UIPopupList>();
- this.mCheck = base.GetComponent<UIToggle>();
- this.mSlider = base.GetComponent<UIProgressBar>();
- }
- private void OnEnable()
- {
- if (this.mList != null)
- {
- EventDelegate.Add(this.mList.onChange, new EventDelegate.Callback(this.SaveSelection));
- string @string = PlayerPrefs.GetString(this.key);
- if (!string.IsNullOrEmpty(@string))
- {
- this.mList.value = @string;
- }
- }
- else if (this.mCheck != null)
- {
- EventDelegate.Add(this.mCheck.onChange, new EventDelegate.Callback(this.SaveState));
- this.mCheck.value = (PlayerPrefs.GetInt(this.key, (!this.mCheck.startsActive) ? 0 : 1) != 0);
- }
- else if (this.mSlider != null)
- {
- EventDelegate.Add(this.mSlider.onChange, new EventDelegate.Callback(this.SaveProgress));
- this.mSlider.value = PlayerPrefs.GetFloat(this.key, this.mSlider.value);
- }
- else
- {
- string string2 = PlayerPrefs.GetString(this.key);
- UIToggle[] componentsInChildren = base.GetComponentsInChildren<UIToggle>(true);
- int i = 0;
- int num = componentsInChildren.Length;
- while (i < num)
- {
- UIToggle uitoggle = componentsInChildren[i];
- uitoggle.value = (uitoggle.name == string2);
- i++;
- }
- }
- }
- private void OnDisable()
- {
- if (this.mCheck != null)
- {
- EventDelegate.Remove(this.mCheck.onChange, new EventDelegate.Callback(this.SaveState));
- }
- else if (this.mList != null)
- {
- EventDelegate.Remove(this.mList.onChange, new EventDelegate.Callback(this.SaveSelection));
- }
- else if (this.mSlider != null)
- {
- EventDelegate.Remove(this.mSlider.onChange, new EventDelegate.Callback(this.SaveProgress));
- }
- else
- {
- UIToggle[] componentsInChildren = base.GetComponentsInChildren<UIToggle>(true);
- int i = 0;
- int num = componentsInChildren.Length;
- while (i < num)
- {
- UIToggle uitoggle = componentsInChildren[i];
- if (uitoggle.value)
- {
- PlayerPrefs.SetString(this.key, uitoggle.name);
- break;
- }
- i++;
- }
- }
- }
- public void SaveSelection()
- {
- PlayerPrefs.SetString(this.key, UIPopupList.current.value);
- }
- public void SaveState()
- {
- PlayerPrefs.SetInt(this.key, (!UIToggle.current.value) ? 0 : 1);
- }
- public void SaveProgress()
- {
- PlayerPrefs.SetFloat(this.key, UIProgressBar.current.value);
- }
- public string keyName;
- private UIPopupList mList;
- private UIToggle mCheck;
- private UIProgressBar mSlider;
- }
|