fix:1、更换ui(图鉴相关)

This commit is contained in:
2026-05-18 16:46:13 +08:00
parent cc12dffbaa
commit a23840e6dc
184 changed files with 5800 additions and 1580 deletions
+2 -2
View File
@@ -8,8 +8,8 @@ namespace RedHotRoast
{
#region Field
public static bool IsEnabledEngineLog = ConfigManager.GameConfig.enabledLog;
// public static bool IsEnabledEngineLog = true;
// public static bool IsEnabledEngineLog = ConfigManager.GameConfig.enabledLog;
public static bool IsEnabledEngineLog = true;
public const LogType EnabledFilterLogType =
LogType.Log | LogType.Warning | LogType.Error | LogType.Assert |
+2 -2
View File
@@ -10,8 +10,8 @@ public class LoveLegendRoot : MonoBehaviour
{
public void Awake()
{
#if UNITY_EDITOR || GAME_RELEASE
GameObject.Find("IngameDebugConsole").SetActive(false);
#if !UNITY_EDITOR || GAME_RELEASE
GameObject.Find("IngameDebugConsole").SetActive(true);
#endif
MaxADKit.Init();
// SGModule.Net.NetworkKit.Instance.InitData(NetworkManager.identifier,true);
+3 -4
View File
@@ -328,6 +328,7 @@ namespace RedHotRoast
// InitView();
ui.btn_secret.title = "LV." + GameHelper.GetCommonModel().UnlockSecret[1];
ui.btn_play.text_lv.text = Language.GetContentParams("level", GameHelper.GetLevel());
ui.btn_play_1.text_lv.text = Language.GetContentParams("level", GameHelper.GetLevel());
SetName(ui.text_name);
}
@@ -470,13 +471,11 @@ namespace RedHotRoast
var btnLive = ui.btn_live as btn_live;
var btnLiveAnim = FXManager.Instance.SetFx<SkeletonAnimation>(btnLive.anim, Fx_Type.fx_btn_live, ref closeCallback);
btnLiveAnim.state.SetAnimation(0, "animation", true);
btnLive.anim.SetScale(0.35f, 0.35f);
var btnPlayAnim = FXManager.Instance.SetFx<SkeletonAnimation>(ui.btn_play.btn_parent, Fx_Type.fx_btn_play, ref closeCallback);
btnPlayAnim.state.SetAnimation(0, "animation", true);
ui.btn_play.text_lv.text = Language.GetContentParams("level", GameHelper.GetLevel());
ui.btn_play.SetClick(OnClickPlay);
ui.btn_play_1.text_lv.text = Language.GetContentParams("level", GameHelper.GetLevel());
ui.btn_play_1.SetClick(OnClickPlay);
ui.btn_wheel.SetClick(OnClickLuckySpin);
ui.btn_sign.SetClick(OnClickSign);
+377 -377
View File
@@ -1,378 +1,378 @@
using System;
using System.IO;
using FairyGUI;
using FGUI.LG_Common;
using FGUI.LG_live;
using Newtonsoft.Json;
using SGModule.Common.Extensions;
using SGModule.NetKit;
using UnityEngine;
using UnityEngine.Video;
using Object = UnityEngine.Object;
namespace RedHotRoast
{
public class LiveDetailUI : BaseUI
{
private LiveDetailUICtrl ctrl;
private LiveDetailModel model;
private com_liveDetail ui;
private VideoPlayer video;
public LiveDetailUI(LiveDetailUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.LiveDetailUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "LG_live";
uiInfo.assetName = "com_liveDetail";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
//初始化页面逻辑
private void Updata()
{
if (GameHelper.GetNowTime() < livedata_.LiveADTime)
{
Debug.Log("??????????????????");
(ui.btn_watchad as btn_claim_4).state.selectedIndex = 1;
(ui.btn_watchad as btn_claim_4).text_time.text = CommonHelper.TimeFormat(
(int)livedata_.LiveADTime - Convert.ToInt32(GameHelper.GetNowTime()),
CountDownType.Hour);
}
else
{
(ui.btn_watchad as btn_claim_4).state.selectedIndex = 0;
if (LiveConfig.AD == livedata_.AD_num + 1)
ui.btn_watchad.title = "+" + (100 - livedata_.progress) + "%";
else
ui.btn_watchad.title = "+" + livedata_.Singleprogress + "%";
}
}
private void InitView()
{
Updata();
var btn_down_coin = ((btn_unlock_1)ui.btn_download_coin);
if (GameHelper.GetVipPrivilege(Subscription.FreeDownImage.As<int>()))
{
(ui.btn_download as btn_claim).have_vip.selectedIndex = 1;
ui.is_vip.selectedIndex = 1;
}
else
{
ui.is_vip.selectedIndex = 0;
btn_down_coin.down_load.selectedIndex = 1;
}
if (livedata_.progress < 100)
{
ui.state.selectedIndex = 0;
if (LiveConfig.AD == 0)
{
ui.can_speed.selectedIndex = 1;
}
if (LiveConfig.SubscribeUnlock == 1)
{
ui.SubscribeUnlock.selectedIndex = 1;
if (GameHelper.GetVipLevel() > 0)
{
ui.btn_pay.visible = false;
ui.btn_watchad.visible = false;
}
} else
{
ui.SubscribeUnlock.selectedIndex = 0;
}
}
else
{
ui.state.selectedIndex = 1;
ui.SubscribeUnlock.selectedIndex = 0;
if (video != null) video.Play();
}
ui.img_mask.fillAmount = (float)(100 - livedata_.progress) / 100;
ui.progress_live.value = (float)livedata_.progress;
//ui.btn_pay.title = LiveConfig.GoldCoins.ToString();
Debug.Log(LiveConfig.GoldCoins);
var need_gold = (int)MathF.Ceiling((100f - livedata_.progress) * LiveConfig.GoldCoins / 100);
ui.btn_pay.title = need_gold.ToString();
if (LiveConfig.AD == livedata_.AD_num + 1)
ui.btn_watchad.title = "+" + (100 - livedata_.progress) + "%";
else
ui.btn_watchad.title = "+" + livedata_.Singleprogress + "%";
ui.btn_pay.SetClick(() =>
{
if (DataMgr.Coin.Value >= need_gold)
{
DataMgr.Coin.Value -= need_gold;
livedata_.progress = 100;
DataMgr.LiveDataDic.Value[index] = livedata_;
Debug.Log($"[解锁成功 0] LiveData总数为: {DataMgr.LiveDataDic.Value.Count}");
DataMgr.LiveDataDic.Save();
GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh);
GameDispatcher.Instance.Dispatch(GameMsg.Update101);
GameDispatcher.Instance.Dispatch(GameMsg.LiveChange, index);
// HandlePvPlay();
InitView();
GameHelper.ShowTips("unlock_success", true);
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
ui.btn_watchad.SetClick(() =>
{
if (livedata_.LiveADTime < GameHelper.GetNowTime())
GameHelper.ShowVideoAd("UnlockLive", isSuccess =>
{
if (isSuccess)
{
livedata_.AD_num++;
if (LiveConfig.AD == livedata_.AD_num)
{
livedata_.progress = 100;
GameHelper.ShowTips("unlock_success", true);
}
else
{
livedata_.progress += livedata_.Singleprogress;
}
DataMgr.LiveDataDic.Value[index] = livedata_;
Debug.Log($"[解锁成功 1] LiveData总数为: {DataMgr.LiveDataDic.Value.Count}");
DataMgr.LiveDataDic.Save();
livedata_.LiveADTime = GameHelper.GetNowTime() + LiveConfig.CD;
SaveData.SaveDataFunc();
// if (livedata_.progress == 100) HandlePvPlay();
InitView();
GameDispatcher.Instance.Dispatch(GameMsg.LiveChange, index);
}
});
});
ui.btn_vip_unlock.SetClick(() =>
{
if (GameHelper.GetVipLevel() > 0)
{
livedata_.progress = 100;
DataMgr.LiveDataDic.Value[index] = livedata_;
Debug.Log($"[解锁成功 0] LiveData总数为: {DataMgr.LiveDataDic.Value.Count}");
DataMgr.LiveDataDic.Save();
GameDispatcher.Instance.Dispatch(GameMsg.LiveChange, index);
HandlePvPlay();
InitView();
GameHelper.ShowTips("unlock_success", true);
string eventName = ADEventTrack.Property.vip_live_unclock_ + (index + 1);
TrackKit.SendEvent(ADEventTrack.VipLive, eventName);
}
else
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open,2);
TrackKit.SendEvent(ADEventTrack.VipLive, ADEventTrack.Property.vip_live_unclock);
}
});
}
#region
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.LiveDetailModel) as LiveDetailModel;
}
protected override void OnClose()
{
if (video != null) Object.Destroy(video.gameObject);
HallManager.Instance.UpdateSecondEvent -= Updata;
VideoPlayerHandover.Return();
// var loader = ui.com_loader.GetChild("loader") as GLoader;
// if (loader?.texture != null)
// {
// loader.texture.Dispose();
// loader.texture = null;
// }
}
protected override void OnBind()
{
ui = baseUI as com_liveDetail;
}
private void HandlePvPlay()
{
Debug.Log("HandlePvPlay: " + index);
var secondUIRoot = ui.displayObject.gameObject.transform;
var loader = ui.com_loader.GetChild("loader") as GLoader;
// 接管播放器
VideoPlayerHandover.TakeOver(player, secondUIRoot, loader, () =>
{
// ui.img_cover.visible = false;
});
var localPath = Path.Combine(TextureHelper.getResPath(), "LiveVideos", LiveConfig.Name + ".mp4");
if (!File.Exists(localPath))
{
ui.img_cover.visible = true;
setCover();
} else
{
ui.img_cover.visible = false;
}
}
private int index;
private VideoPlayer player;
private LiveData livedata_;
private Live LiveConfig;
protected override void OnOpenBefore(object args)
{
var tuple = ((int index, VideoPlayer player))args;
index = tuple.index;
player = tuple.player;
if (player != null)
player.audioOutputMode = VideoAudioOutputMode.None;
// 从配置表取配置(这里还是 List,如果有 Id 字段可改成字典)
LiveConfig = ConfigSystem.GetConfig<Live>()[index];
livedata_ = PreDownloadManager.GetLiveDataByIndex(LiveConfig, index);
ui.btn_close.SetClick(() => { CtrlCloseUI(); });
if (livedata_.progress >= 100)
HandlePvPlay();
else
{
setCover();
}
var btn_down_coin = ((btn_unlock_1)ui.btn_download_coin);
var downloadCoinNum = ConfigSystem.GetCommonConf().CoinsDownload;
btn_down_coin.title = downloadCoinNum.ToString();
HallManager.Instance.UpdateSecondEvent += Updata;
btn_down_coin.SetClick(() =>
{
if (GameHelper.Get101() >= downloadCoinNum)
{
DataMgr.Coin.Value -= downloadCoinNum;
GameDispatcher.Instance.Dispatch(GameMsg.Update101);
TextureHelper.SaveVideoToAlbum(LiveConfig.Name);
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
ui.btn_download.SetClick(() =>
{
if (GameHelper.GetVipPrivilege(Subscription.FreeDownImage.As<int>()))
TextureHelper.SaveVideoToAlbum(LiveConfig.Name);
else
GameHelper.ShowVideoAd("DownloadLive", isSuccess =>
{
if (isSuccess) TextureHelper.SaveVideoToAlbum(LiveConfig.Name);
});
});
InitView();
}
private void setCover()
{
var coverLoader = ui.img_cover.GetChild("loader") as GLoader;
if (coverLoader?.texture != null)
{
coverLoader.texture.Dispose();
coverLoader.texture = null;
}
LiveVideoManager.Instance.GetVideoCover(coverLoader, LiveConfig.Name + "_cover", (tex) =>
{
if (tex != null && coverLoader != null && !coverLoader.isDisposed)
{
coverLoader.texture = new NTexture(tex)
{
destroyMethod = DestroyMethod.Destroy
};
coverLoader.visible = true;
}
else
{
Debug.LogError("封面获取失败");
}
});
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
private void vipLevelChange(object o)
{
InitView();
}
private void liveVideoLoaded(object o)
{
HandlePvPlay();
// InitView();
}
protected override void AddListener()
{
GameDispatcher.Instance.AddListener(GameMsg.BuyVip, vipLevelChange);//VIP订阅后更新头像的vip图标
GameDispatcher.Instance.AddListener(GameMsg.liveVideoLoaded, liveVideoLoaded);
}
protected override void RemoveListener()
{
HallManager.Instance.UpdateSecondEvent -= Updata;
GameDispatcher.Instance.RemoveListener(GameMsg.BuyVip, vipLevelChange);//VIP订阅后更新头像的vip图标
GameDispatcher.Instance.RemoveListener(GameMsg.liveVideoLoaded, liveVideoLoaded);
}
#endregion
}
using System;
using System.IO;
using FairyGUI;
using FGUI.LG_Common;
using FGUI.LG_live;
using Newtonsoft.Json;
using SGModule.Common.Extensions;
using SGModule.NetKit;
using UnityEngine;
using UnityEngine.Video;
using Object = UnityEngine.Object;
namespace RedHotRoast
{
public class LiveDetailUI : BaseUI
{
private LiveDetailUICtrl ctrl;
private LiveDetailModel model;
private com_liveDetail ui;
private VideoPlayer video;
public LiveDetailUI(LiveDetailUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.LiveDetailUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "LG_live";
uiInfo.assetName = "com_liveDetail";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
//初始化页面逻辑
private void Updata()
{
if (GameHelper.GetNowTime() < livedata_.LiveADTime)
{
Debug.Log("??????????????????");
(ui.btn_watchad as btn_claim_4).state.selectedIndex = 1;
(ui.btn_watchad as btn_claim_4).text_time.text = CommonHelper.TimeFormat(
(int)livedata_.LiveADTime - Convert.ToInt32(GameHelper.GetNowTime()),
CountDownType.Hour);
}
else
{
(ui.btn_watchad as btn_claim_4).state.selectedIndex = 0;
if (LiveConfig.AD == livedata_.AD_num + 1)
ui.btn_watchad.title = "+" + (100 - livedata_.progress) + "%";
else
ui.btn_watchad.title = "+" + livedata_.Singleprogress + "%";
}
}
private void InitView()
{
Updata();
var btn_down_coin = ui.btn_download_coin;
if (GameHelper.GetVipPrivilege(Subscription.FreeDownImage.As<int>()))
{
ui.btn_download.have_vip.selectedIndex = 1;
ui.is_vip.selectedIndex = 1;
}
else
{
ui.is_vip.selectedIndex = 0;
btn_down_coin.down_load.selectedIndex = 1;
}
if (livedata_.progress < 100)
{
ui.state.selectedIndex = 0;
if (LiveConfig.AD == 0)
{
ui.can_speed.selectedIndex = 1;
}
if (LiveConfig.SubscribeUnlock == 1)
{
ui.SubscribeUnlock.selectedIndex = 1;
if (GameHelper.GetVipLevel() > 0)
{
ui.btn_pay.visible = false;
ui.btn_watchad.visible = false;
}
} else
{
ui.SubscribeUnlock.selectedIndex = 0;
}
}
else
{
ui.state.selectedIndex = 1;
ui.SubscribeUnlock.selectedIndex = 0;
if (video != null) video.Play();
}
ui.img_mask.fillAmount = (float)(100 - livedata_.progress) / 100;
ui.progress_live.value = (float)livedata_.progress;
//ui.btn_pay.title = LiveConfig.GoldCoins.ToString();
Debug.Log(LiveConfig.GoldCoins);
var need_gold = (int)MathF.Ceiling((100f - livedata_.progress) * LiveConfig.GoldCoins / 100);
ui.btn_pay.title = need_gold.ToString();
if (LiveConfig.AD == livedata_.AD_num + 1)
ui.btn_watchad.title = "+" + (100 - livedata_.progress) + "%";
else
ui.btn_watchad.title = "+" + livedata_.Singleprogress + "%";
ui.btn_pay.SetClick(() =>
{
if (DataMgr.Coin.Value >= need_gold)
{
DataMgr.Coin.Value -= need_gold;
livedata_.progress = 100;
DataMgr.LiveDataDic.Value[index] = livedata_;
Debug.Log($"[解锁成功 0] LiveData总数为: {DataMgr.LiveDataDic.Value.Count}");
DataMgr.LiveDataDic.Save();
GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh);
GameDispatcher.Instance.Dispatch(GameMsg.Update101);
GameDispatcher.Instance.Dispatch(GameMsg.LiveChange, index);
// HandlePvPlay();
InitView();
GameHelper.ShowTips("unlock_success", true);
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
ui.btn_watchad.SetClick(() =>
{
if (livedata_.LiveADTime < GameHelper.GetNowTime())
GameHelper.ShowVideoAd("UnlockLive", isSuccess =>
{
if (isSuccess)
{
livedata_.AD_num++;
if (LiveConfig.AD == livedata_.AD_num)
{
livedata_.progress = 100;
GameHelper.ShowTips("unlock_success", true);
}
else
{
livedata_.progress += livedata_.Singleprogress;
}
DataMgr.LiveDataDic.Value[index] = livedata_;
Debug.Log($"[解锁成功 1] LiveData总数为: {DataMgr.LiveDataDic.Value.Count}");
DataMgr.LiveDataDic.Save();
livedata_.LiveADTime = GameHelper.GetNowTime() + LiveConfig.CD;
SaveData.SaveDataFunc();
// if (livedata_.progress == 100) HandlePvPlay();
InitView();
GameDispatcher.Instance.Dispatch(GameMsg.LiveChange, index);
}
});
});
ui.btn_vip_unlock.SetClick(() =>
{
if (GameHelper.GetVipLevel() > 0)
{
livedata_.progress = 100;
DataMgr.LiveDataDic.Value[index] = livedata_;
Debug.Log($"[解锁成功 0] LiveData总数为: {DataMgr.LiveDataDic.Value.Count}");
DataMgr.LiveDataDic.Save();
GameDispatcher.Instance.Dispatch(GameMsg.LiveChange, index);
HandlePvPlay();
InitView();
GameHelper.ShowTips("unlock_success", true);
string eventName = ADEventTrack.Property.vip_live_unclock_ + (index + 1);
TrackKit.SendEvent(ADEventTrack.VipLive, eventName);
}
else
{
uiCtrlDispatcher.Dispatch(UICtrlMsg.VipClubViewUI_Open,2);
TrackKit.SendEvent(ADEventTrack.VipLive, ADEventTrack.Property.vip_live_unclock);
}
});
}
#region
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.LiveDetailModel) as LiveDetailModel;
}
protected override void OnClose()
{
if (video != null) Object.Destroy(video.gameObject);
HallManager.Instance.UpdateSecondEvent -= Updata;
VideoPlayerHandover.Return();
// var loader = ui.com_loader.GetChild("loader") as GLoader;
// if (loader?.texture != null)
// {
// loader.texture.Dispose();
// loader.texture = null;
// }
}
protected override void OnBind()
{
ui = baseUI as com_liveDetail;
}
private void HandlePvPlay()
{
Debug.Log("HandlePvPlay: " + index);
var secondUIRoot = ui.displayObject.gameObject.transform;
var loader = ui.com_loader.GetChild("loader") as GLoader;
// 接管播放器
VideoPlayerHandover.TakeOver(player, secondUIRoot, loader, () =>
{
// ui.img_cover.visible = false;
});
var localPath = Path.Combine(TextureHelper.getResPath(), "LiveVideos", LiveConfig.Name + ".mp4");
if (!File.Exists(localPath))
{
ui.img_cover.visible = true;
setCover();
} else
{
ui.img_cover.visible = false;
}
}
private int index;
private VideoPlayer player;
private LiveData livedata_;
private Live LiveConfig;
protected override void OnOpenBefore(object args)
{
var tuple = ((int index, VideoPlayer player))args;
index = tuple.index;
player = tuple.player;
if (player != null)
player.audioOutputMode = VideoAudioOutputMode.None;
// 从配置表取配置(这里还是 List,如果有 Id 字段可改成字典)
LiveConfig = ConfigSystem.GetConfig<Live>()[index];
livedata_ = PreDownloadManager.GetLiveDataByIndex(LiveConfig, index);
ui.btn_close.SetClick(() => { CtrlCloseUI(); });
if (livedata_.progress >= 100)
HandlePvPlay();
else
{
setCover();
}
var btn_down_coin = ui.btn_download_coin;
var downloadCoinNum = ConfigSystem.GetCommonConf().CoinsDownload;
btn_down_coin.title = downloadCoinNum.ToString();
HallManager.Instance.UpdateSecondEvent += Updata;
btn_down_coin.SetClick(() =>
{
if (GameHelper.Get101() >= downloadCoinNum)
{
DataMgr.Coin.Value -= downloadCoinNum;
GameDispatcher.Instance.Dispatch(GameMsg.Update101);
TextureHelper.SaveVideoToAlbum(LiveConfig.Name);
}
else
{
GameHelper.ShowTips("no_enough_gold", true);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open);
}
});
ui.btn_download.SetClick(() =>
{
if (GameHelper.GetVipPrivilege(Subscription.FreeDownImage.As<int>()))
TextureHelper.SaveVideoToAlbum(LiveConfig.Name);
else
GameHelper.ShowVideoAd("DownloadLive", isSuccess =>
{
if (isSuccess) TextureHelper.SaveVideoToAlbum(LiveConfig.Name);
});
});
InitView();
}
private void setCover()
{
var coverLoader = ui.img_cover.GetChild("loader") as GLoader;
if (coverLoader?.texture != null)
{
coverLoader.texture.Dispose();
coverLoader.texture = null;
}
LiveVideoManager.Instance.GetVideoCover(coverLoader, LiveConfig.Name + "_cover", (tex) =>
{
if (tex != null && coverLoader != null && !coverLoader.isDisposed)
{
coverLoader.texture = new NTexture(tex)
{
destroyMethod = DestroyMethod.Destroy
};
coverLoader.visible = true;
}
else
{
Debug.LogError("封面获取失败");
}
});
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
private void vipLevelChange(object o)
{
InitView();
}
private void liveVideoLoaded(object o)
{
HandlePvPlay();
// InitView();
}
protected override void AddListener()
{
GameDispatcher.Instance.AddListener(GameMsg.BuyVip, vipLevelChange);//VIP订阅后更新头像的vip图标
GameDispatcher.Instance.AddListener(GameMsg.liveVideoLoaded, liveVideoLoaded);
}
protected override void RemoveListener()
{
HallManager.Instance.UpdateSecondEvent -= Updata;
GameDispatcher.Instance.RemoveListener(GameMsg.BuyVip, vipLevelChange);//VIP订阅后更新头像的vip图标
GameDispatcher.Instance.RemoveListener(GameMsg.liveVideoLoaded, liveVideoLoaded);
}
#endregion
}
}
+2 -2
View File
@@ -405,7 +405,7 @@ namespace RedHotRoast
var btnSecret = ui.btn_secret as btn_secret;
var btnSecretAnim = FXManager.Instance.SetFx<SkeletonAnimation>(btnSecret.anim, Fx_Type.fx_btn_secret, ref closeCallback);
btnSecretAnim.state.SetAnimation(0, "animation", true);
var btnVip = ui.btn_vip as btn_vip;
var btnVipAnim = FXManager.Instance.SetFx<SkeletonAnimation>(btnVip.anim, Fx_Type.fx_btn_vip, ref closeCallback);
btnVipAnim.state.SetAnimation(0, "animation", true);
@@ -417,7 +417,6 @@ namespace RedHotRoast
var btnLive = ui.btn_live as btn_live;
var btnLiveAnim = FXManager.Instance.SetFx<SkeletonAnimation>(btnLive.anim, Fx_Type.fx_btn_live, ref closeCallback);
btnLiveAnim.state.SetAnimation(0, "animation", true);
btnLive.anim.SetScale(0.35f, 0.35f);
ui.fairyBatching = true;
int level = GameHelper.GetLevel();
@@ -599,6 +598,7 @@ namespace RedHotRoast
else
{
Levelunlock levelunlock_ = DataMgr.LevelUnlockListNew.Value.FirstOrDefault(x => x.level_ == GameHelper.GetLevel());
Debug.Log($"levelunlock_0-----------------:{levelunlock_.config_index} {levelunlock_.type}");
if (levelunlock_ != null)
{
if (levelunlock_.type == 0)
@@ -1,84 +1,89 @@
using FGUI.ZM_Common_01;
using UnityEngine;
using FairyGUI;
namespace RedHotRoast
{
public class ScAlbumLockUI : BaseUI
{
private ScAlbumLockUICtrl ctrl;
private ScAlbumLockModel model;
private FGUI.LG_Unlock.com_scAlbumLock ui;
public ScAlbumLockUI(ScAlbumLockUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.ScAlbumLockUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "LG_Unlock";
uiInfo.assetName = "com_scAlbumLock";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
#region
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.ScAlbumLockModel) as ScAlbumLockModel;
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as FGUI.LG_Unlock.com_scAlbumLock;
}
protected override void OnOpenBefore(object args)
{
InitView();
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
protected override void AddListener()
{
}
protected override void RemoveListener()
{
}
#endregion
//初始化页面逻辑
private void InitView()
{
ui.btn_close.SetClick(() =>
{
CtrlCloseUI();
});
ui.text_unlock.SetVar("num", GameHelper.GetCommonModel().UnlockSecret[1].ToString()).FlushVars();
}
}
using System;
using FGUI.ZM_Common_01;
using UnityEngine;
using FairyGUI;
using Spine.Unity;
namespace RedHotRoast
{
public class ScAlbumLockUI : BaseUI
{
private ScAlbumLockUICtrl ctrl;
private ScAlbumLockModel model;
private FGUI.LG_Unlock.com_scAlbumLock ui;
public ScAlbumLockUI(ScAlbumLockUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.ScAlbumLockUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "LG_Unlock";
uiInfo.assetName = "com_scAlbumLock";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
#region
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.ScAlbumLockModel) as ScAlbumLockModel;
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as FGUI.LG_Unlock.com_scAlbumLock;
}
protected override void OnOpenBefore(object args)
{
InitView();
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
protected override void AddListener()
{
}
protected override void RemoveListener()
{
}
#endregion
//初始化页面逻辑
private void InitView()
{
Action closeCallBack = null;
var prop_effect = FXManager.Instance.SetFx<SkeletonAnimation>(ui.anim, Fx_Type.fx_secret_girl, ref closeCallBack);
prop_effect.state.SetAnimation(0, "animation", true);
ui.btn_close.SetClick(() =>
{
CtrlCloseUI();
});
ui.text_unlock.SetVar("num", GameHelper.GetCommonModel().UnlockSecret[1].ToString()).FlushVars();
}
}
}
+124 -122
View File
@@ -1,122 +1,124 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SGModule.Common.Extensions;
using SGModule.Common.Helper;
using SGModule.ConfigLoader;
using SGModule.NetKit;
using UnityEngine;
namespace RedHotRoast {
public class ConfigSystem : BaseSystem {
public static string web_through_str;
public ConfigSystem(bool isAutoInit = true) {
if (isAutoInit) {
Init();
}
}
public sealed override void Init() {
base.Init();
AddListener();
}
private void AddListener() {
NetworkDispatcher.Instance.AddListener(NetworkMsg.GetConfig, OnGetConfig);
}
private void RemoveListener() {
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.GetConfig, OnGetConfig);
}
private void OnGetConfig(object obj) {
TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoadBegin); //加载开始打点
var loginModel = LoginKit.Instance.LoginModel;
ConfigLoader.Instance.Init(new ConfigInitOptions {
Setting = loginModel.Setting,
CdnUrl = loginModel.CdnURL,
OnComplete = state => {
Debug.Log($"配置加载状态{state}");
if (state == ConfigLoaderState.Successful) {
ReloadConfig();
}
},
OnError = (errorName, message) => {
Debug.LogError($"配置解析错误 {errorName} 错误信息:{message}");
},
OnHandleUnmarkedConfig = ParseGameConfig
});
}
/// <summary>
/// 重新加载配置
/// </summary>
/// <param name="json"></param>
private void ReloadConfig() {
TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoadFinish); //加载完成打点
TextureHelper.imgUrl = LoginKit.Instance.LoginModel.CdnURL + "/" + ConfigSystem.GetCommonConf().ResVersion + "/";
LiveVideoManager.videoBaseUrl = LoginKit.Instance.LoginModel.CdnURL + "/" + ConfigSystem.GetCommonConf().ResVersion + "/";
// ParseGameConfig();
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close);
AppDispatcher.Instance.Dispatch(AppMsg.LoginInit);
CtrlDispatcher.Instance.Dispatch(CtrlMsg.Game_StartBefore);
SaveingPotHelper.ResetHistory();
}
#region
private void ParseGameConfig() {
var gameConfigModel = new GameConfigModel();
foreach (var key in ConfigLoader.Instance.GetJsonKeys()) {
if (!key.StartsWith("GameBoard")) {
continue;
}
// 提取 boardIndex
var boardIndex = 1;
var parts = key.Split('_');
if (parts.Length > 1 && int.TryParse(parts[1], out var parsed)) {
boardIndex = parsed;
}
// 获取 json 并反序列化
if (ConfigLoader.Instance.TryGetJsonValue(key, out var gameboardJson)) {
try {
var gameBoards = gameboardJson.As<List<GameBoard>>();
if (gameBoards != null) {
gameConfigModel.game_conf[boardIndex] = gameBoards;
}
else {
Log.ConfigLoader.Warning($"GameBoard 配置 {key} 反序列化为空");
}
}
catch (Exception ex) {
Log.ConfigLoader.Error($"GameBoard 配置 {key} 反序列化失败: {ex.Message}");
}
}
}
ConfigLoader.Instance.AddConfig(gameConfigModel);
}
#endregion
public static CommonModel GetCommonConf() {
return ConfigLoader.Instance.GetConfig<CommonModel>();
}
public static List<T> GetConfig<T>() where T : class {
return ConfigLoader.Instance.GetConfig<List<T>>() ?? new List<T>();
}
public override void Dispose() {
base.Dispose();
RemoveListener();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using SGModule.Common.Extensions;
using SGModule.Common.Helper;
using SGModule.ConfigLoader;
using SGModule.NetKit;
using UnityEngine;
namespace RedHotRoast {
public class ConfigSystem : BaseSystem {
public static string web_through_str;
public ConfigSystem(bool isAutoInit = true) {
if (isAutoInit) {
Init();
}
}
public sealed override void Init() {
base.Init();
AddListener();
}
private void AddListener() {
NetworkDispatcher.Instance.AddListener(NetworkMsg.GetConfig, OnGetConfig);
}
private void RemoveListener() {
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.GetConfig, OnGetConfig);
}
private void OnGetConfig(object obj) {
TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoadBegin); //加载开始打点
var loginModel = LoginKit.Instance.LoginModel;
ConfigLoader.Instance.Init(new ConfigInitOptions {
Setting = loginModel.Setting,
CdnUrl = loginModel.CdnURL,
OnComplete = state => {
Debug.Log($"配置加载状态{state}");
if (state == ConfigLoaderState.Successful) {
ReloadConfig();
}
},
OnError = (errorName, message) => {
Debug.LogError($"配置解析错误 {errorName} 错误信息:{message}");
},
OnHandleUnmarkedConfig = ParseGameConfig
});
}
/// <summary>
/// 重新加载配置
/// </summary>
/// <param name="json"></param>
private void ReloadConfig() {
var CdnURL = "https://asserts.minskyfun.top";
TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoadFinish); //加载完成打点
TextureHelper.imgUrl = CdnURL + "/" + ConfigSystem.GetCommonConf().ResVersion + "/";
LiveVideoManager.videoBaseUrl = CdnURL + "/" + ConfigSystem.GetCommonConf().ResVersion + "/";
// ParseGameConfig();
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close);
AppDispatcher.Instance.Dispatch(AppMsg.LoginInit);
CtrlDispatcher.Instance.Dispatch(CtrlMsg.Game_StartBefore);
SaveingPotHelper.ResetHistory();
}
#region
private void ParseGameConfig() {
var gameConfigModel = new GameConfigModel();
foreach (var key in ConfigLoader.Instance.GetJsonKeys()) {
if (!key.StartsWith("GameBoard")) {
continue;
}
// 提取 boardIndex
var boardIndex = 1;
var parts = key.Split('_');
if (parts.Length > 1 && int.TryParse(parts[1], out var parsed)) {
boardIndex = parsed;
}
// 获取 json 并反序列化
if (ConfigLoader.Instance.TryGetJsonValue(key, out var gameboardJson)) {
try {
var gameBoards = gameboardJson.As<List<GameBoard>>();
if (gameBoards != null) {
gameConfigModel.game_conf[boardIndex] = gameBoards;
}
else {
Log.ConfigLoader.Warning($"GameBoard 配置 {key} 反序列化为空");
}
}
catch (Exception ex) {
Log.ConfigLoader.Error($"GameBoard 配置 {key} 反序列化失败: {ex.Message}");
}
}
}
ConfigLoader.Instance.AddConfig(gameConfigModel);
}
#endregion
public static CommonModel GetCommonConf() {
return ConfigLoader.Instance.GetConfig<CommonModel>();
}
public static List<T> GetConfig<T>() where T : class {
return ConfigLoader.Instance.GetConfig<List<T>>() ?? new List<T>();
}
public override void Dispose() {
base.Dispose();
RemoveListener();
}
}
}