using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class HangUpWin : MonoBehaviour { #region 得到组件 [SerializeField] private Text _hpPercentText; [SerializeField] private Slider _hpPercentSlider; [SerializeField] private Text _offlinePluginTimeText; [SerializeField] private Button _addOfflinePlugin; [SerializeField] private List _togglelist = new List(); [SerializeField] Vector3 OnPos = new Vector3(18,1,0); [SerializeField] Vector3 OffPos = new Vector3(-18, 1, 0); #endregion GetItemPathModel _itemPathModel; GetItemPathModel itemPathModel { get { return _itemPathModel ?? (_itemPathModel = ModelCenter.Instance.GetModel()); } } private void Awake() { InitUI(); _hpPercentSlider.onValueChanged.AddListener(OnSliderHpPrecent); _addOfflinePlugin.AddListener(ClickAddOfflinePlugin); } private void InitUI() { _hpPercentSlider.minValue = 1; _hpPercentSlider.maxValue = 99; _hpPercentSlider.value = HangUpSetModel.Instance.GetHpSet(); _hpPercentText.text = _hpPercentSlider.value + "%"; int i = 0; int length = _togglelist.Count; for(i = 0; i < length; i++) { int index = i; GameObject toggle = _togglelist[i].gameObject; _togglelist[i].isOn = HangUpSetModel.Instance.GetBool((HangUpAutoBoolType)i); OnSetSwitchImage(toggle,(HangUpAutoBoolType)i,_togglelist[i].isOn); _togglelist[i].onValueChanged.RemoveAllListeners(); _togglelist[i].onValueChanged.AddListener((bool isOn)=> { OnClickSwitchSet(isOn,index,toggle); }); } } private void OnEnable() { _offlinePluginTimeText.text = HangUpSetModel.Instance.GetOfflinePluginTimeStr(); } private void OnSliderHpPrecent(float value) { HangUpSetModel.Instance.SetHpSet(Mathf.RoundToInt(value)); _hpPercentText.text = Mathf.RoundToInt(value) + "%"; } private void OnClickSwitchSet(bool isOn,int index,GameObject go) { HangUpSetModel.Instance.SetBoolSetStr((HangUpAutoBoolType)index,isOn); OnSetSwitchImage(go, (HangUpAutoBoolType)index,isOn); } private void OnSetSwitchImage(GameObject go,HangUpAutoBoolType type,bool isOpen) { switch (type) { case HangUpAutoBoolType.curFixedScreen: ToggleTextCtrl(go,isOpen); break; case HangUpAutoBoolType.curFollowScreen: ToggleTextCtrl(go, isOpen); break; case HangUpAutoBoolType.isAutoDrop: MoveImage(go,isOpen); break; case HangUpAutoBoolType.isAutoHangUp: MoveImage(go, isOpen); break; case HangUpAutoBoolType.isAutoBuyDrug: MoveImage(go, isOpen); break; case HangUpAutoBoolType.isAutoSell: MoveImage(go, isOpen); break; case HangUpAutoBoolType.isAutoDevour: MoveImage(go, isOpen); break; case HangUpAutoBoolType.isAutoReborn: MoveImage(go, isOpen); break; } } private void ToggleTextCtrl(GameObject go,bool isOpen) { Text bgText = go.transform.Find("Background_text").GetComponent(); Text checkText = go.transform.Find("Checkmark_text").GetComponent(); if(isOpen) { bgText.gameObject.SetActive(false); checkText.gameObject.SetActive(true); } else { bgText.gameObject.SetActive(true); checkText.gameObject.SetActive(false); } } private void MoveImage(GameObject go,bool isOpen) { RectTransform switchIcon = go.transform.Find("Image").GetComponent(); Text onText = go.transform.Find("ON").GetComponent(); Text offText = go.transform.Find("Off").GetComponent(); Image bgIcon = go.GetComponent(); if (isOpen) { switchIcon.anchoredPosition3D = OnPos; onText.gameObject.SetActive(true); offText.gameObject.SetActive(false); bgIcon.SetSprite("SettingUpWin_NO"); } else { switchIcon.anchoredPosition3D = OffPos; onText.gameObject.SetActive(false); offText.gameObject.SetActive(true); bgIcon.SetSprite("SettingUpWin_OFF"); } } private void ClickAddOfflinePlugin() { itemPathModel.SetChinItemModel(952); } } }