Files
CaptainDiceDubloons_IOS_unity/Assets/Scripts/ModuleUI/Menu/MenuUI.cs
T
2026-05-25 10:07:19 +08:00

320 lines
10 KiB
C#

using System;
using FairyGUI;
using FGUI.Common_01;
using FGUI.Setting_07;
using IgnoreOPS;
// using SGModule.ApplePay;
using UnityEngine;
// using btn_head = FGUI.Common_01.btn_head;
// using FGUI.G006_menu;
namespace ChillConnect
{
public class MenuUI : BaseUI
{
private MenuUICtrl ctrl;
private MenuModel model;
private com_setting ui;
private int selectIndex = -1;
private int total_item;
public MenuUI(MenuUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.MenuUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "Setting_07";
uiInfo.assetName = "com_setting";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
#region 生命周期
protected override void OnInit()
{
model = moduleManager.GetModel(ModelConst.MenuModel) as MenuModel;
}
protected override void OnClose()
{
CommonHelper.FadeOut(ui);
}
protected override void OnBind()
{
ui = baseUI as com_setting;
}
protected override void OnOpenBefore(object args)
{
total_item = 8;
selectIndex = DataMgr.PlayerAvatarId.Value;
InitView();
UpdataAvatar();
}
protected override void OnOpen(object args)
{
CommonHelper.FadeIn(ui);
// if (args != null)
// {
// ui.menu.selectedIndex = (bool)args ? com_setting.Menu_settings : com_setting.Menu_person;
// }
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region 消息
protected override void AddListener()
{
HallManager.Instance.AddChangeGiftSwitch(InitView);
PreferencesDispatcher<int>.Instance.AddListener(DataMsg.playerAvatarId, UpdataAvatar);
}
protected override void RemoveListener()
{
HallManager.Instance.RemoveChangeGiftSwitch(InitView);
PreferencesDispatcher<int>.Instance.RemoveListener(DataMsg.playerAvatarId, UpdataAvatar);
}
#endregion
private int _selectIndex = 0;
private const int TotalItem = 8;
private void UpdataAvatar(object obj = null)
{
// var head = ui.btn_head.head as btn_head;
// GameHelper.SetSelfAvatar(head.load_avatar);
}
private void UpdateItem(int index, GObject items)
{
Debug.Log($"updateItem============index =={index}");
var currentIndex = index + 1;
var head = items as btn_item_head;
var imgHead = head.head as btn_head;
TextureHelper.SetAvatarToLoader(currentIndex, imgHead.load_avatar);
head.head_select.selectedIndex = _selectIndex == currentIndex
? btn_item_head.Head_select_select
: btn_item_head.Head_select_none;
head.SetClick(() =>
{
_selectIndex = currentIndex;
ui.list.numItems = TotalItem;
SetHeadPic();
PreferencesDispatcher<int>.Instance.Dispatch(DataMsg.playerAvatarId);
});
}
private void SetAvatar()
{
if (_selectIndex != -1 && _selectIndex != DataMgr.PlayerAvatarId.Value)
{
DataMgr.PlayerAvatarId.Value = _selectIndex;
}
}
private void SetHeadPic()
{
SetAvatar();
// var head = ui.head as btn_head;
// if (head == null) return;
// TextureHelper.SetAvatarToLoader(_selectIndex, head.load_avatar);
}
private void InitView()
{
_selectIndex= DataMgr.PlayerAvatarId.Value;
ui.list.itemRenderer = UpdateItem;
ui.list.numItems = TotalItem;
// var namStr = GameHelper.GetUserName();
// ui.edit_name.input.text = namStr;
// ui.edit_name.btn_amend.SetClick(SaveName);
// ui.btn_back.SetClick(OnCloseView);
// ui.btn_music.SetClick(OnClickSetMusic);
// ui.btn_sound.SetClick(OnClickSoundBtn);
// ui.btn_privacy.menus.selectedIndex = btn_menu.Menus_privacy;
// ui.btn_terms.menus.selectedIndex = btn_menu.Menus_terms;
// ui.btn_official.menus.selectedIndex = btn_menu.Menus_official;
// ui.btn_credits.menus.selectedIndex = btn_menu.Menus_credits;
// ui.btn_privacy.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PrivacyUI_Open, 0); });
// ui.btn_terms.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PrivacyUI_Open, 1); });
// ui.btn_official.SetClick(() => { OpenBrowser.OpenURL("https://www.chillconnect.fun"); });
// ui.btn_email.SetClick(() => {
// //OpenBrowser.OpenEmailClient(ConfigSystem.GetConfig<CommonModel>().contactUs, "Please select an email application");
// GameHelper.OpenEmail();
// });
// ui.btn_exit.SetClick(OnCloseView);
// ui.btn_credits.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PrivacyUI_Open, 2); });
// SetUID();
// SetVersion();
// RefreshMusicUI();
// // 初始化滑动条位置
// ui.sound_slider.min = 0f;
// ui.sound_slider.max = 1f;
// // 添加滑动条变化事件监听
// ui.sound_slider.onChanged.Add(() =>
// {
// var sound = (float)Math.Round(ui.sound_slider.value, 2);
// Debug.Log("sound 滑动条当前的值=== " + sound);
// GRoot.inst.soundVolume = sound;
// PlayerPrefs.SetFloat("soundVolume", sound);
// });
// ui.music_slider.min = 0f;
// ui.music_slider.max = 1f;
// ui.music_slider.onChanged.Add(() =>
// {
// var sound = (float)Math.Round(ui.music_slider.value, 2);
// Debug.Log("music 滑动条当前的值=== " + sound);
// PlayerPrefs.SetFloat("musicSound", sound);
// AudioManager.Instance.SetBGMSound();
// });
// ui.btn_head.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PersonViewUI_Open); });
// if (GameHelper.IsGiftSwitch()) {
// ui.btn_restore.visible = false;
// }
// ui.btn_restore.SetClick(() =>
// {
// // ApplePayManager.Instance.AppleRestore((success,message)=>{
// // Debug.Log("[barry] restore success message: " + message);
// // if (success)
// // {
// // Debug.Log("[barry] restore success: " + success);
// // GameHelper.ShowTips("Restore Purchases Success!");
// // // SaveData.GetSaveObject().is_get_packreward = success;
// // if (!GameHelper.IsGiftSwitch())
// // {
// // SaveData.GetSaveObject().is_get_removead = success;
// // }
// // SaveData.GetSaveObject().have_slot = success;
// // GameDispatcher.Instance.Dispatch(GameMsg.noads_refresh);
// // }
// // else
// // {
// // // Debug.Log("[barry] restore failed: " + success);
// // GameHelper.ShowTips("There are no recoverable transactions");
// // }
// // });
// CtrlCloseUI();
// });
ui.btn_close.SetClick(CtrlCloseUI);
ui.btn_select.SetClick(CtrlCloseUI);
}
private void SetVersion()
{
// Debug.Log($"SetVersion====== {Application.version}");
// ui.text_version.SetVar("count", Application.version).FlushVars();
}
private void SetUID()
{
// ui.text_uid.SetVar("UID", GameHelper.GetLoginModel().Uid.ToString()).FlushVars();
}
public override void OnSwitchLanguage()
{
base.OnSwitchLanguage();
SetVersion();
SetUID();
}
private void OnCloseView()
{
// CloseMenu();
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MenuUI_Close, true);
TimerHelper.mEasy.AddTimer(0.5f, () =>
{
CtrlCloseUI();
});
}
private void SaveName()
{
// var name = ui.edit_name.input.text;
// Debug.Log($"SaveName=== {name}");
// if (string.IsNullOrEmpty(name) || name.IsNullOrWhiteSpace())
// {
// GameHelper.ShowTips("The input cannot be null", true);
// return;
// }
// // if (name.Equals(GameHelper.GetPlayerInviteCode()))
// // {
// // return;
// // }
// if (name.Equals(DataMgr.PlayerName)) return;
// GameHelper.ShowTips("Name changed successfully");
// DataMgr.PlayerName.Value = name;
}
private void OnClickSetMusic()
{
model.IsOpenMusic = !model.IsOpenMusic;
RefreshMusicUI();
}
private void OnClickSoundBtn()
{
model.IsOpenEffect = !model.IsOpenEffect;
RefreshMusicUI();
}
private void RefreshMusicUI()
{
// ui.btn_music.on_off.selectedIndex =
// model.IsOpenMusic ? btn_music_on_off.On_off_on : btn_music_on_off.On_off_off;
// ui.btn_sound.on_off.selectedIndex =
// model.IsOpenEffect ? btn_sound_on_off.On_off_on : btn_sound_on_off.On_off_off;
// Debug.Log("barry GRoot.inst.soundVolume的值=== " + GRoot.inst.soundVolume);
// ui.sound_slider.value = GRoot.inst.soundVolume;
// // Debug.Log("barry music volume的值=== " + PlayerPrefs.GetFloat("musicSound", 1.0f));
// ui.music_slider.value = PlayerPrefs.GetFloat("musicSound", 1.0f);
}
}
}