SettingView.cs 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. using UI.RoleInfo;
  2. using FairyGUI;
  3. namespace GFGGame
  4. {
  5. public class SettingView : BaseWindow
  6. {
  7. private UI_SettingUI _ui;
  8. private EffectUI _effectUI1;
  9. private EffectUI _effectUI2;
  10. private static bool _refresh;
  11. public static bool refresh
  12. {
  13. set { _refresh = value; }
  14. }
  15. public override void Dispose()
  16. {
  17. EffectUIPool.Recycle(_effectUI1);
  18. _effectUI1 = null;
  19. EffectUIPool.Recycle(_effectUI2);
  20. _effectUI2 = null;
  21. if (_ui != null)
  22. {
  23. _ui.Dispose();
  24. _ui = null;
  25. }
  26. base.Dispose();
  27. }
  28. protected override void OnInit()
  29. {
  30. base.OnInit();
  31. packageName = UI_SettingUI.PACKAGE_NAME;
  32. _ui = UI_SettingUI.Create();
  33. this.viewCom = _ui.target;
  34. isfullScreen = true;
  35. isReturnView = true;
  36. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_hzzs");
  37. _ui.m_btnExit.onClick.Add(OnClickBtnBack);
  38. _ui.m_btnLogout.target.onClick.Add(OnClickBtnLogout);
  39. _ui.m_btnSound.onClick.Add(OnClickBtnSound);
  40. _ui.m_btnMusic.onClick.Add(OnClickBtnMusic);
  41. _ui.m_btnVoice.onClick.Add(OnClickBtnVoice);
  42. _ui.m_btnExchange.onClick.Add(OnClickBtnChangeMainBg);
  43. _ui.m_voiceSlider.target.onChanged.Add(OnChangeVoiceVolumn);
  44. _ui.m_musicSlider.target.onChanged.Add(OnChangeMusicVolumn);
  45. _ui.m_soundSlider.target.onChanged.Add(OnChangeSoundVolumn);
  46. _ui.m_btnGiftCode.target.onClick.Add(OnClickGiftCode);
  47. _ui.m_settingTypeList.itemRenderer = RenderListType;
  48. _ui.m_settingTypeList.numItems = _ui.m_settingTypeList.numItems;
  49. _ui.m_gameProtectAgree.onClick.Add(OnGameProtectAgreeClick);
  50. _ui.m_privacyAgree.onClick.Add(OnPrivacyAgreeClick);
  51. _ui.m_childrenAgree.onClick.Add(OnChildrenAgreeClick);
  52. _ui.m_btnBinding.onClick.Add(OnClickPhoneBinding);
  53. _ui.m_btnBinding.text = "点击绑定";
  54. _ui.m_btnBinding.visible = false;
  55. _ui.m_btnUnbind.onClick.Add(OnClickPhoneUnbind);
  56. _ui.m_btnUnbind.text = "解绑";
  57. _ui.m_btnUnbind.visible = false;
  58. _ui.m_groupAccount.visible = GameConfig.tsStatus > 0;
  59. }
  60. protected override void OnShown()
  61. {
  62. base.OnShown();
  63. InitVolumnSetting();
  64. if (_refresh)
  65. {
  66. _refresh = false;
  67. _ui.m_suit.Play();
  68. _ui.m_c1.SetSelectedIndex(0);
  69. }
  70. _ui.m_icon.visible = false;
  71. _ui.m_iconBg.visible = false;
  72. _ui.m_settingTypeList.visible = false;
  73. _ui.m_btnGiftCode.target.visible = GameConfig.hCode == 0;
  74. if (!string.IsNullOrEmpty(ActivityDataManager.Instance.PhoneNumber))
  75. {
  76. //已经绑定, 需要解绑
  77. _ui.m_txtPhoneDes.text = ActivityDataManager.Instance.PhoneNumber;
  78. _ui.m_btnBinding.visible = false;
  79. _ui.m_btnUnbind.visible = true;
  80. }
  81. else
  82. {
  83. _ui.m_txtPhoneDes.text = "手机号绑定";
  84. _ui.m_btnBinding.visible = true;
  85. _ui.m_btnUnbind.visible = false;
  86. }
  87. }
  88. protected override void OnHide()
  89. {
  90. base.OnHide();
  91. }
  92. protected override void AddEventListener()
  93. {
  94. base.AddEventListener();
  95. EventAgent.AddEventListener(ConstMessage.PhoneChange, OnPhoneChange);
  96. }
  97. protected override void RemoveEventListener()
  98. {
  99. base.RemoveEventListener();
  100. EventAgent.RemoveEventListener(ConstMessage.PhoneChange, OnPhoneChange);
  101. }
  102. private void OnPhoneChange()
  103. {
  104. if (!string.IsNullOrEmpty(ActivityDataManager.Instance.PhoneNumber))
  105. {
  106. //已经绑定, 需要解绑
  107. _ui.m_txtPhoneDes.text = ActivityDataManager.Instance.PhoneNumber;
  108. _ui.m_btnBinding.visible = false;
  109. _ui.m_btnUnbind.visible = true;
  110. }
  111. else
  112. {
  113. _ui.m_txtPhoneDes.text = "手机号绑定";
  114. _ui.m_btnBinding.visible = true;
  115. _ui.m_btnUnbind.visible = false;
  116. }
  117. }
  118. private void OnClickBtnBack()
  119. {
  120. Hide();
  121. }
  122. private void OnClickBtnLogout()
  123. {
  124. AlertSystem.Show("确认注销当前账号吗?")
  125. .SetLeftButton(true)
  126. .SetRightButton(true, "确认", (object data) => { GameController.QuitToLoginView(true); });
  127. }
  128. private void OnClickBtnSound()
  129. {
  130. SoundManager.Instance.isOn = _ui.m_btnSound.selected;
  131. bool isOn = _ui.m_btnSound.selected;
  132. _ui.m_soundSlider.target.touchable = isOn;
  133. UI_Slider2 slider1 = UI_Slider2.Proxy(_ui.m_soundSlider.target);
  134. slider1.m_c1.SetSelectedIndex(isOn ? 0 : 1);
  135. slider1.m_progressBar.fillAmount = isOn ? (float)_ui.m_soundSlider.target.value / 100 : 0;
  136. UI_Slider2.ProxyEnd();
  137. }
  138. private void OnClickBtnMusic()
  139. {
  140. MusicManager.Instance.isOn = _ui.m_btnMusic.selected;
  141. bool isOn = _ui.m_btnMusic.selected;
  142. _ui.m_musicSlider.target.touchable = isOn;
  143. UI_Slider2 slider1 = UI_Slider2.Proxy(_ui.m_musicSlider.target);
  144. slider1.m_c1.SetSelectedIndex(isOn ? 0 : 1);
  145. slider1.m_progressBar.fillAmount = isOn ? (float)_ui.m_musicSlider.target.value / 100 : 0;
  146. UI_Slider2.ProxyEnd();
  147. }
  148. private void OnClickBtnVoice()
  149. {
  150. VoiceManager.Instance.isOn = _ui.m_btnVoice.selected;
  151. bool isOn = _ui.m_btnVoice.selected;
  152. _ui.m_voiceSlider.target.touchable = isOn;
  153. UI_Slider2 slider1 = UI_Slider2.Proxy(_ui.m_voiceSlider.target);
  154. slider1.m_c1.SetSelectedIndex(isOn ? 0 : 1);
  155. slider1.m_progressBar.fillAmount = isOn ? (float)_ui.m_voiceSlider.target.value / 100 : 0;
  156. UI_Slider2.ProxyEnd();
  157. }
  158. private void OnChangeVoiceVolumn()
  159. {
  160. float volumn = (float)_ui.m_voiceSlider.target.value / 100;
  161. UI_Slider2 slider1 = UI_Slider2.Proxy(_ui.m_voiceSlider.target);
  162. slider1.m_progressBar.fillAmount = volumn;
  163. UI_Slider2.ProxyEnd();
  164. VoiceManager.Instance.SetVolumn(volumn);
  165. LocalCache.SetFloat(GameConfig.VOICE_VOLUMN_KEY, volumn);
  166. }
  167. private void OnChangeMusicVolumn()
  168. {
  169. float volumn = (float)_ui.m_musicSlider.target.value / 100;
  170. UI_Slider2 slider1 = UI_Slider2.Proxy(_ui.m_musicSlider.target);
  171. slider1.m_progressBar.fillAmount = volumn;
  172. UI_Slider2.ProxyEnd();
  173. MusicManager.Instance.SetSettingVolumn(volumn);
  174. MusicManager.Instance.SetVolume(volumn);
  175. LocalCache.SetFloat(GameConfig.MUSIC_VOLUMN_KEY, volumn);
  176. }
  177. private void OnChangeSoundVolumn()
  178. {
  179. float volumn = (float)_ui.m_soundSlider.target.value / 100;
  180. UI_Slider2 slider1 = UI_Slider2.Proxy(_ui.m_soundSlider.target);
  181. slider1.m_progressBar.fillAmount = volumn;
  182. UI_Slider2.ProxyEnd();
  183. SoundManager.Instance.SetVolumn(volumn);
  184. LocalCache.SetFloat(GameConfig.SOUND_VOLUMN_KEY, volumn);
  185. }
  186. private void OnClickBtnChangeMainBg()
  187. {
  188. ViewManager.Show<MainBgChooseView>();
  189. }
  190. private void InitVolumnSetting()
  191. {
  192. _ui.m_btnMusic.selected = MusicManager.Instance.isOn;
  193. _ui.m_musicSlider.target.value = MusicManager.Instance.GetSettingVolumn() * 100;
  194. OnClickBtnMusic();
  195. _ui.m_btnSound.selected = SoundManager.Instance.isOn;
  196. _ui.m_soundSlider.target.value = GRoot.inst.soundVolume * 100;
  197. OnClickBtnSound();
  198. _ui.m_btnVoice.selected = VoiceManager.Instance.isOn;
  199. _ui.m_voiceSlider.target.value = VoiceManager.Instance.GetVolumn() * 100;
  200. OnClickBtnVoice();
  201. }
  202. private void OnClickPhoneBinding()
  203. {
  204. ViewManager.Show<PhoneBindingView>();
  205. }
  206. private void OnClickPhoneUnbind()
  207. {
  208. ViewManager.Show<UnbindPhoneView>();
  209. }
  210. private void OnClickGiftCode()
  211. {
  212. ViewManager.Show<InputGiftCodeView>();
  213. }
  214. /// <summary>
  215. /// 初始化上方选择菜单,同步按钮按下和普通状态的文本
  216. /// </summary>
  217. /// <param name="index"></param>
  218. /// <param name="item"></param>
  219. private void RenderListType(int index, GObject item)
  220. {
  221. UI_Button6 button6 = UI_Button6.Proxy(item);
  222. button6.m_title1.text = button6.target.title;
  223. UI_Button6.ProxyEnd();
  224. }
  225. private void OnGameProtectAgreeClick()
  226. {
  227. FullScreenTextController.Show("event:a");
  228. }
  229. private void OnPrivacyAgreeClick()
  230. {
  231. FullScreenTextController.Show("event:b");
  232. }
  233. private void OnChildrenAgreeClick()
  234. {
  235. FullScreenTextController.Show("event:c");
  236. }
  237. private void OnClickTxtDeleteAccount()
  238. {
  239. ViewManager.Show<DeleteAccountView>();
  240. }
  241. }
  242. }