NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/UI_CultivateController.cs

1511 lines
59 KiB
C#
Raw Normal View History

2025-01-21 16:38:05 +08:00
using cfg.CharacterCfg;
2023-08-22 19:08:45 +08:00
using cfg.SkillCfg;
using Cysharp.Threading.Tasks;
2023-08-22 19:08:45 +08:00
using Framework;
using Gameplay;
2023-10-19 15:00:19 +08:00
using Gameplay.Character.Utils;
using Gameplay.Guide;
2024-12-24 13:59:36 +08:00
using Gameplay.Net;
2023-10-19 15:00:19 +08:00
using NLDPB;
2023-08-22 19:08:45 +08:00
using System;
2023-10-19 15:00:19 +08:00
using System.Collections;
2023-08-22 19:08:45 +08:00
using System.Collections.Generic;
using System.Linq;
2025-01-21 16:38:05 +08:00
using System.Text;
2023-08-22 19:08:45 +08:00
using TMPro;
using UnityEngine;
using UnityEngine.UI;
2025-01-21 16:38:05 +08:00
using Button = UnityEngine.UI.Button;
using Image = UnityEngine.UI.Image;
2023-08-22 19:08:45 +08:00
public class UI_CultivateController : UIWindow
{
2025-01-21 16:38:05 +08:00
#region UI
//UI GameObj
///Auto Gen Start///
public Image Image_CultivateBG;
public Image Image_UnderDark;
public Image Image_Book;
public Image Image_Document;
public Image Image_BookShadow;
public Image Image_Line;
//public Image Image_BG;
//public Button Button_Back;
public Button Button_back;
public TMP_Text Text_Back;
public Button Button_Home;
public Image Image_Cultivate_BG_Black;
public Image Image_Black;
public Image Image_Poster00;
public Image Image_BG_Rect;
public Button Button_Look;
public Button Button_ChangeSuit;
public Image Image_CommandCostSign;
public TMP_Text Text_CommandCost;
public Image Image_GroupLogo;
public Image Image_CharacterRegion;
public Image Image_Blow_Shadow;
public Image Image_BottomDark;
public Image Image_NameInfo;
public Image Image_Profession_Logo;
public TMP_Text Text_CharacterName;
public TMP_Text Text_RussiaName;
public Button Button_LevelPlus;
public Image Image_LevelBar;
public Image Image_Level_Arrow;
public TMP_Text Text_Level_Max;
public TMP_Text Text_Exp_Now;
public TMP_Text Text_Level_Now;
public Button Button_LevelPlusLimited;
public Image Image_NeedRankUp;
public Image Image_LevelBar_Max;
public TMP_Text Text_Level_Now_Full;
public TMP_Text Text_Level_Max_Full;
public Image Image_AdvanceLevel;
public Image Image_Advance01;
public Image Image_Advance02;
public Image Image_Advance03;
public Image Image_Advance04;
public TMP_Text Text_Advance;
public TMP_Text Text_AdvanceName;
public Image Image_RankLevel;
public Image Image_Rank_01;
public Image Image_Rank_02;
public Image Image_Rank_03;
public Image Image_Rank_04;
public TMP_Text Text_Rank;
public TMP_Text Text_RankName;
public Button Button_RankPlus;
public Image Image_UI_Cultivate_ActiveSkill;
public Image Image_SkillLogo;
public Image Image_UI_SkillCd;
public TMP_Text Text_CDSecond;
public TMP_Text Text_CDTme;
public Image Image_Max;
//public Button Button_ActiveSK_Arrow;
public Button Button_SkillPlus;
public TMP_Text Text_ActiveSkill;
public TMP_Text Text_ActiveSkillName;
public TMP_Text Text_PassiveSkill;
public TMP_Text Text_Class;
public TMP_Text Text_Class_Value;
public Image Image_UI_Cultivate_ActiveSkill_Open;
//public Button Button_ActiveSK_ArrowClose;
public Image Image_Max_Open;
public Image Image_SkillLogo_Open;
public Image Image_SkillCd_Open;
public TMP_Text Text_CDTme_Open;
public TMP_Text Text_CDSecond_Open;
public Button Button_SkillPlus_Open;
public TMP_Text Text_ActiveSkill_Open;
public TMP_Text Text_ActiveSkillName_Open;
public TMP_Text Text_ActiveSkill_Info;
public TMP_Text Text_PassiveSkill_Open;
public TMP_Text Text_Class_Open;
public TMP_Text Text_Class_Value_Open;
public Image Image_PersonalAttri;
public TMP_Text Text_PersonalAttri;
public Button Button_AttributeInfo;
public TMP_Text Text_PersonalAttriDetail;
public Image Image_AttriHp;
public TMP_Text Text_AttriHp;
public TMP_Text Text_AttriHpNumber;
public Image Image_AttriShiled;
public TMP_Text Text_AttriShiled;
public TMP_Text Text_AttriShiledfNumber;
public Image Image_AttriProficiency;
public TMP_Text Text_AttriProfi;
public TMP_Text Text_AttriProfiNumber;
public Image Image_AttriSolider;
public TMP_Text Text_AttriSoli;
public TMP_Text Text_AttriSoliNumber;
public Image Image_AttriDefend;
public TMP_Text Text_AttriDef;
public TMP_Text Text_AttriDefNumber;
public Image Image_AttriMoveSpeed;
public TMP_Text Text_AttriMove;
public TMP_Text Text_AttriMoveNumber;
public Image Image_AttriBelong;
public TMP_Text Text_AttriBelong;
public Image Image_AttriWeapon;
public TMP_Text Text_AttriWeapom;
public Image Image_AttriBulletAttack;
public TMP_Text Text_AttriBulletAttack;
public Image Image_AttriBulletCapacity;
public TMP_Text Text_AttriBulletCapacity;
public Image Image_AttriBulletRadious;
public PhxhSDK.PhxhScrollView ScrollView_DistanceScale;
public Image Image_Favor;
public Image Image_FavorIconBg;
public Image Image_FavorIcon;
public TMP_Text Text_Favor;
public TMP_Text Text_FavorNumber;
public TMP_Text Text_FavorRankNumber;
public Image Image_Commander;
public TMP_Text Text_Commander;
public Image Image_DarkTop;
public Image Image_DarkBottomThin;
public Image Image_DarkLeft;
public Image Image_DarkRight;
public Image Image_TopBlackBar;
public Image Image_BottomBlackBar;
///Auto Gen End///
#endregion
2023-08-22 19:08:45 +08:00
UILeftCharanterUIType mCurLeftUICharacterType = UILeftCharanterUIType.EbaseAttri;
List<CharacterDataInfo> characterDataInfos = new List<CharacterDataInfo>();
CharacterDataInfo mCurCharaData;
int mCurIndex = 0;//当前人物索引
CharacterLevelExp LevelExpCfg;
CharacterAttri characterAttriCfg;
CharacterBreak characterBreakCfg;
FactionAttri factionAttriCfg;
JobAttri jobAttriCfg;
SkillConfig skillConfig;
2023-10-19 15:00:19 +08:00
DataSkill nowSkillCfg;
2023-08-22 19:08:45 +08:00
CharacterSkillLevel characterSkillLevelCfg;
Image character2dPic;
2025-01-21 16:38:05 +08:00
2024-07-25 20:08:53 +08:00
float ArrowRadius;
2025-01-21 16:38:05 +08:00
2023-08-22 19:08:45 +08:00
public List<Image> advanceImageList;
2025-01-21 16:38:05 +08:00
2023-08-22 19:08:45 +08:00
public List<Image> rankImageList;
2025-01-21 16:38:05 +08:00
2023-08-22 19:08:45 +08:00
public TMP_Text Text_PassiveSkillName01;
public TMP_Text Text_PassiveSkillName02;
2025-01-21 16:38:05 +08:00
//public TMP_Text Text_ActiveSkill_InfoOpen;
2023-10-19 15:00:19 +08:00
2023-08-22 19:08:45 +08:00
public TMP_Text Text_PassiveSkillName01_Info;
public TMP_Text Text_PassiveSkill01_NextLevel;
public TMP_Text Text_PassiveSkillName02_Info;
public TMP_Text Text_PassiveSkill02_NextLevel;
2025-01-21 16:38:05 +08:00
2023-10-19 15:00:19 +08:00
public Button Button_Awake;
public Button Button_SkillLevelUp;
2023-08-22 19:08:45 +08:00
2025-01-21 16:38:05 +08:00
//滑动动画完成,允许左右滑动
2023-10-19 15:00:19 +08:00
private bool IsCanChange = false;
2023-08-22 19:08:45 +08:00
//保证只注册一次
private bool isRegisterInput = false;
2025-02-13 18:57:56 +08:00
private bool isShowParticleAnim = false;
2025-01-21 16:38:05 +08:00
//private UI_Cultivate_DetailController detailWindow;
//private UI_Cultivate_ProAndInfoController proAndInfoWindow;
2023-10-19 15:00:19 +08:00
private GameObject UI_Cultivate_LevelObj;
private GameObject Image_AdvanceLevelObj;
private GameObject Image_RankLevelObj;
private GameObject UI_Cultivate_ActSkObj;
2023-08-22 19:08:45 +08:00
public enum UIRightCharanterUIType
{
ElevelUp,
EskillsHeighten,
Ebreak,
Eawake,
Efavorable,
ENone,
}
public enum UILeftCharanterUIType
{
/// <summary>
/// 角色基础属性
/// </summary>
2023-08-22 19:08:45 +08:00
EbaseAttri,
/// <summary>
/// 角色详细属性
/// </summary>
2023-08-22 19:08:45 +08:00
EDetailInfo,
}
2025-01-21 16:38:05 +08:00
public override void PreLoad(object data = null)
{
base.PreLoad(data);
2023-08-22 19:08:45 +08:00
2025-01-21 16:38:05 +08:00
//#region 子UI预加载
//proAndInfoWindow = await UIManager.Instance.LoadWindow(UINameConst.UI_Cultivate_ProAndInfo) as UI_Cultivate_ProAndInfoController;
//detailWindow = await UIManager.Instance.LoadWindow(UINameConst.UI_Cultivate_Detail) as UI_Cultivate_DetailController;
//#endregion
2025-02-13 18:57:56 +08:00
UISelectCharacterController.CultivateStruct info = data as UISelectCharacterController.CultivateStruct;
if (info != null)
{
isShowParticleAnim = info.showAnim;
}
}
2023-08-22 19:08:45 +08:00
2024-01-23 12:25:47 +08:00
public override void OnInit()
2023-08-22 19:08:45 +08:00
{
2025-01-21 16:38:05 +08:00
UI_CultivateBinder.GetComponents(this);
2023-08-22 19:08:45 +08:00
//BindButton("UIFighterCiltivateAllBtn/Button_BasicInfo", OnButton_BasicInfoClick);
//BindButton("UIFighterCiltivateAllBtn/Button_SkillsHeighten", OnButton_SkillsHeightenClick);
//BindButton("UIFighterCiltivateAllBtn/Button_Break", OnButton_BreakClick);
//BindButton("UIFighterCiltivateAllBtn/Button_Awake", OnButton_AwakeClick);
//BindButton("UIFighterCiltivateAllBtn/Button_Favorable", OnButton_FavoClick);
//BindButton("Image_BG/Image_Cultivate_BG_Black/Button_Look", OnButton_LookClick);
2024-09-14 15:48:23 +08:00
character2dPic = GetComponent<Image>("Image_BG/Image_Cultivate_BG_Black/Hide/Image_Poster00");
2025-01-21 16:38:05 +08:00
//Image_Profession_Logo = GetComponent<Image>("Image_BG/Image_NameInfo/Image_Profession_Logo");
//Text_CharacterName = GetComponent<TMP_Text>("Image_BG/Image_NameInfo/Text_CharacterName");
//Text_CommandCost = GetComponent<TMP_Text>("Image_BG/Image_Cultivate_BG_Black/Text_CommandCost");
//Text_Level_Now_Full = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Level_Max/Text_Level_Now_Full");
//Text_Level_Max_Full = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Level_Max/Text_Level_Max_Full");
//Text_Level_Now = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Text_Level_Now");
//Text_Level_Max = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Text_Level_Max");
//Text_Exp_Now = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Text_Exp_Now");
//Image_LevelBar = GetComponent<Image>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Image_LevelBar");
//Button_LevelPlus = GetComponent<Button>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Button_LevelPlus");
//Button_LevelPlusLimited = GetComponent<Button>("Image_BG/UI_Cultivate_Level/ImageUI_Level_Max/Button_LevelPlusLimited");
//Image_Level_Arrow = GetComponent<Image>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Image_LevelBar/Image_Level_Arrow");
2024-07-25 20:08:53 +08:00
ArrowRadius = -Image_Level_Arrow.GetComponent<RectTransform>().anchoredPosition.y;
2025-01-21 16:38:05 +08:00
//Text_Level_Now = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Text_Level_Now");
//Text_Level_Max = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level/Text_Level_Max");
//Image_LevelBar_Max = GetComponent<Image>("Image_BG/UI_Cultivate_Level/ImageUI_Level_Max/Image_LevelBar_Max");
2023-08-22 19:08:45 +08:00
BindButton(Button_LevelPlus, OnButton_LevelUpClick);
BindButton(Button_LevelPlusLimited, OnButton_RankPlusClick);
2025-01-21 16:38:05 +08:00
//Image_AdvanceLevel = GetComponent<Image>("Image_BG/Image_AdvanceLevel");
//Image_Advance01 = GetComponent<Image>("Image_BG/Image_AdvanceLevel/Image_Advance01");
//Image_Advance02 = GetComponent<Image>("Image_BG/Image_AdvanceLevel/Image_Advance02");
//Image_Advance03 = GetComponent<Image>("Image_BG/Image_AdvanceLevel/Image_Advance03");
//Image_Advance04 = GetComponent<Image>("Image_BG/Image_AdvanceLevel/Image_Advance04");
//Text_Advance = GetComponent<TMP_Text>("Image_BG/Image_AdvanceLevel/Text_Advance");
//Text_AdvanceName = GetComponent<TMP_Text>("Image_BG/Image_AdvanceLevel/Text_AdvanceName");
2023-10-19 15:00:19 +08:00
advanceImageList = new List<Image>
{
Image_Advance01,
Image_Advance02,
Image_Advance03,
Image_Advance04
};
2025-01-21 16:38:05 +08:00
//Image_RankLevel = GetComponent<Image>("Image_BG/Image_RankLevel");
//Button_RankPlus = GetComponent<Button>("Image_BG/Image_RankLevel/Button_RankPlus");
//Image_Rank_01 = GetComponent<Image>("Image_BG/Image_RankLevel/Image_Rank_01");
//Image_Rank_02 = GetComponent<Image>("Image_BG/Image_RankLevel/Image_Rank_02");
//Image_Rank_03 = GetComponent<Image>("Image_BG/Image_RankLevel/Image_Rank_03");
//Image_Rank_04 = GetComponent<Image>("Image_BG/Image_RankLevel/Image_Rank_04");
//Text_Rank = GetComponent<TMP_Text>("Image_BG/Image_RankLevel/Text_Rank");
//Text_RankName = GetComponent<TMP_Text>("Image_BG/Image_RankLevel/Text_RankName");
2023-10-19 15:00:19 +08:00
rankImageList = new List<Image>
{
Image_Rank_01,
Image_Rank_02,
Image_Rank_03,
Image_Rank_04
};
2025-01-21 16:38:05 +08:00
//Image_UI_Cultivate_ActiveSkill = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill");
//Image_SkillLogo = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Image_SkillLogo");
//Image_UI_SkillCd = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Image_SkillLogo/Image_UI_SkillCd");
//Text_CDSecond = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Image_SkillLogo/Image_UI_SkillCd/Text_CDSecond");
//Text_CDTme = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Image_SkillLogo/Image_UI_SkillCd/Text_CDTme");
//Button_SkillPlus = GetComponent<Button>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Button_SkillPlus");
//Text_ActiveSkill = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Text_ActiveSkill");
//Text_ActiveSkillName = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Text_ActiveSkillName");
//Text_PassiveSkill = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Text_PassiveSkill");
//Image_UI_Cultivate_ActiveSkill_Open = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open");
//Image_Max = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Image_Max");
//Image_SkillLogo_Open = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Image_SkillLogo_Open");
//Image_SkillCd_Open = GetComponent<Image>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Image_SkillLogo_Open/Image_SkillCd_Open");
//Text_CDTmeOpen = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Image_SkillLogo_Open/Image_SkillCd_Open/Text_CDTme");
//Text_CDSecond = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Image_SkillLogo_Open/Image_SkillCd_Open/Text_CDSecond");
//Button_SkillPlus_Open = GetComponent<Button>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Button_SkillPlus_Open");
//Text_ActiveSkill = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Text_ActiveSkill");
//Text_ActiveSkillNameOpen = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Text_ActiveSkillName");
//Text_ActiveSkill_InfoOpen = GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Text_ActiveSkill_Info");
2023-10-19 15:00:19 +08:00
//BindButton(Button_ActiveSK_Arrow, OnButton_ActiveSK_ArrowClick);
2023-08-22 19:08:45 +08:00
BindButton(Button_SkillPlus, OnButton_SkillPlusClick);
2023-10-19 15:00:19 +08:00
BindButton(Button_SkillPlus_Open, OnButton_SkillPlusClick);
2025-01-21 16:38:05 +08:00
//Button_Back = GetComponent<Button>("Image_BG/Button_Back/Button_back");
BindButton(Button_back, OnButton_BackClick);
//Button_Look = GetComponent<Button>("Image_BG/Image_Cultivate_BG_Black/Button_Look");
//Button_ChangeSuit = GetComponent<Button>("Image_BG/Image_Cultivate_BG_Black/Button_ChangeSuit");
BindButton(Button_AttributeInfo, OnButton_AttriClick);
2023-08-22 19:08:45 +08:00
BindButton(Button_Look, OnButton_LookClick);
BindButton(Button_RankPlus, OnButton_RankPlusClick);
BindButton(Button_ChangeSuit, OnButton_ChangeSuit);
2023-11-15 18:13:52 +08:00
Button_Awake = GetComponent<Button>("Image_BG/Image_AdvanceLevel/AwakePlusBtn");
2023-10-19 15:00:19 +08:00
BindButton(Button_Awake, OnButton_Awake);
//BindButton(Button_ActiveSK_ArrowClose, OnButton_ActiveSK_ArrowCloseClick);
FindObj("Image_BG/Image_GroupLogo");
BindButton(GetComponent<Button>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/EmptyButton"),
OnButton_ActiveSK_ArrowClick);
BindButton(GetComponent<Button>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/EmptyButton"),
OnButton_ActiveSK_ArrowCloseClick);
UI_Cultivate_LevelObj = FindObj("Image_BG/UI_Cultivate_Level");
Image_AdvanceLevelObj = FindObj("Image_BG/Image_AdvanceLevel");
Image_RankLevelObj = FindObj("Image_BG/Image_RankLevel");
UI_Cultivate_ActSkObj = FindObj("Image_BG/UI_Cultivate_ActSk");
2024-04-12 17:07:21 +08:00
Button_Home = GetComponent<Button>("Image_BG/Button_Back/Button_Home");
2023-11-21 13:24:42 +08:00
BindButton(Button_Home, OnClickHome);
2025-01-21 16:38:05 +08:00
RegisterEvent();
2025-02-13 12:41:10 +08:00
2025-02-13 18:57:56 +08:00
if (!isShowParticleAnim)
{
FindObj("Image_CultivateBG/grow_heidishan").SetActive(false);
}
2025-02-13 12:41:10 +08:00
PlayFx();
2023-10-19 15:00:19 +08:00
}
2023-08-22 19:08:45 +08:00
protected override void OnShowWindow(object info = null)
2023-08-22 19:08:45 +08:00
{
2025-01-21 16:38:05 +08:00
//Button_Look.gameObject.SetActive(false);
//Button_ChangeSuit.gameObject.SetActive(false);
2023-10-19 15:00:19 +08:00
2023-08-22 19:08:45 +08:00
UISelectCharacterController.CultivateStruct newInfo = info as UISelectCharacterController.CultivateStruct;
if (newInfo != null)
{
SetCharaInfoInOpen(newInfo.info, newInfo.showList);
for (int i = 0; i < newInfo.showList.Count; i++)
{
if (newInfo.showList[i].ID == newInfo.info.ID)
{
mCurIndex = i;
break;
}
}
}
2023-08-22 19:08:45 +08:00
ControllInput(true);
RefreshActiveSkillBtn(false);
2023-10-19 15:00:19 +08:00
}
2024-01-26 16:06:42 +08:00
private async void PlayFx()
2023-10-19 15:00:19 +08:00
{
RefreshActiveSkillBtn(false);//动画播放时默认关闭技能详情界面
2025-02-13 18:57:56 +08:00
if (isShowParticleAnim)
AudioManager.Instance.PlayAudio(Framework.Constants.Sound.SELECT_CHARACTER);
2024-10-15 19:13:49 +08:00
2023-10-19 15:00:19 +08:00
PlayAnimation(GetComponent<Animator>(("Image_CultivateBG")), "MainDefault Animation");
PlayAnimation(GetComponent<Animator>(), "Line And Document Animation");
GetComponent<Animator>().speed = 0;
GetComponent<Animator>().Update(0);
UI_Cultivate_LevelObj.SetActive(false);
Image_AdvanceLevelObj.SetActive(false);
Image_RankLevelObj.SetActive(false);
UI_Cultivate_ActSkObj.SetActive(false);
2024-04-02 14:18:40 +08:00
FindObj("Image_BG/Image_NameInfo").SetActive(false);
2024-01-26 16:06:42 +08:00
await WaitTimeForFx();
//StartCoroutine(_coroutine);
2023-10-19 15:00:19 +08:00
}
2024-01-26 16:06:42 +08:00
private async UniTask WaitTimeForFx()
2023-10-19 15:00:19 +08:00
{
2025-02-13 18:57:56 +08:00
await UniTask.Delay(isShowParticleAnim ? 1000 : 10);
if (!IsShow() || !IsCreated())
2024-01-26 16:06:42 +08:00
{
return;
}
2023-10-19 15:00:19 +08:00
OpenLeftChildUI(mCurLeftUICharacterType);
UI_Cultivate_LevelObj.SetActive(true);
Image_AdvanceLevelObj.SetActive(true);
Image_RankLevelObj.SetActive(true);
UI_Cultivate_ActSkObj.SetActive(true);
2024-04-02 14:18:40 +08:00
FindObj("Image_BG/Image_NameInfo").SetActive(true);
2024-06-03 15:57:43 +08:00
Animator animator = GetComponent<Animator>();
PlayAnimation(animator, "MoveIn");
2023-10-19 15:00:19 +08:00
//PlayAnimation(GetComponent<Animator>(("Image_BG/UI_Cultivate_Level")), "Cultivate_LevelChangeIn");
//PlayAnimation(GetComponent<Animator>(("Image_BG/Image_AdvanceLevel")), "Advance_ChangeIn");
//PlayAnimation(GetComponent<Animator>(("Image_BG/Image_RankLevel")), "Rank_LevelChangeIn");
//PlayAnimation(GetComponent<Animator>(("Image_BG/UI_Cultivate_ActSk")), "ActSk_ChangeIn");
//PlayAnimation(GetComponent<Animator>(("Image_CultivateBG")), "MainDefault Animation");
this.GetComponent<Animator>().speed = 1;
2024-06-03 15:57:43 +08:00
PlayAnimation(animator, "Line And Document Animation");
2025-02-13 12:41:10 +08:00
FindObj("Image_CultivateBG/grow_heidishan").SetActive(false);
//Button_Look.gameObject.SetActive(true);
//Button_ChangeSuit.gameObject.SetActive(true);
2023-08-22 19:08:45 +08:00
while (animator != null && animator.GetCurrentAnimatorStateInfo(0).normalizedTime < 1f)
2024-06-03 15:57:43 +08:00
{
await UniTask.Yield();
}
if (animator == null)
{
DebugUtil.LogWarning("animator is null! 可能是由于动画未完成提前关闭了界面导致");
return;
}
2024-06-03 15:57:43 +08:00
EventManager.Instance.Send(EventManager.EventName.UIOpenAndAnim, WindowName);
2023-08-22 19:08:45 +08:00
}
private void OnFingleSwipe(Vector2 delta)
{
2024-09-12 16:58:21 +08:00
if (GuideManager.Instance.IsGuiding)
return;
2023-08-22 19:08:45 +08:00
if (!IsCanChange)
{
return;
}
if (delta.x > 25)
{
OnButton_LeftArrowsClick();
2023-08-22 19:08:45 +08:00
IsCanChange = false;
}//finger drag from left to right
//此时符合拖拽实际效果的应该是向左翻页
2023-08-22 19:08:45 +08:00
else if (delta.x < -25)
{
OnButton_RightArrowsClick();
2023-10-19 15:00:19 +08:00
IsCanChange = false;
}//finger drag from right to left
//此时符合拖拽实际效果的应该是向右翻页
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
//public bool DetectSwipeLeft()
//{
// return fingerDownPosition.x - fingerUpPosition.x > 50f; // 调整阈值以适应您的需求
//}
//public bool DetectSwipeRight()
//{
// return fingerUpPosition.x - fingerDownPosition.x > 50f; // 调整阈值以适应您的需求
//}
2024-08-15 15:06:43 +08:00
2023-11-21 13:24:42 +08:00
public override async UniTask<bool> OnBack(object data = null)
{
ClosePreloadChildUI();
CloseWindow();
return true;
}
/// <summary>
2024-08-15 15:06:43 +08:00
/// 关闭预加载的子UI,由于需要保证动画同步请与界面CloseWindow同时调用
/// </summary>
void ClosePreloadChildUI()
2023-08-22 19:08:45 +08:00
{
//CloseLeftCurChildUI();
UIManager.Instance.CloseWindow(UINameConst.UI_Cultivate_ProAndInfo);
UIManager.Instance.CloseWindow(UINameConst.UI_Cultivate_Detail);
2023-08-22 19:08:45 +08:00
}
private void RegisterEvent()
{
2023-10-19 15:00:19 +08:00
EventManager.Instance.Register(EventManager.EventName.EN_CharacterLevelUp, (Action<UpgradeType>)OnCharacterLevelup);
2023-08-22 19:08:45 +08:00
EventManager.Instance.Register(EventManager.EventName.EN_ShowAllCharacterOpenDetailUI, OnRecvEventOpenDetailUI);
EventManager.Instance.Register(EventManager.EventName.EN_ShowAllCharacterFavorableUI, OnRecvEventOpenFavorableUI);
EventManager.Instance.Register(EventManager.EventName.EN_ShowAllCharacterOpenBaseAttriUI, OnRecvEventOpenBaseAttriUI);
EventManager.Instance.Register(EventManager.EventName.EN_UIControllCultivateMainInput, (Action<bool>)OnRecvEventControlInput);
EventManager.Instance.Register(EventManager.EventName.ItemUse, OnSkinChange);//物品使用可能是更换皮肤
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
private void OnCharacterLevelup(UpgradeType type)
2023-08-22 19:08:45 +08:00
{
SetCurCharacterData(CharacterDataInfoManager.Instance.GetCharacterInfo(mCurCharaData.ID));//刷新角色数据
2023-10-19 15:00:19 +08:00
switch (type)
{
case UpgradeType.UtLevel:
RefreshLevelBtn();
break;
case UpgradeType.UtAwake:
RefreshAwakeBtn();
RefreshSkillBtn();//觉醒后技能可能会变
2023-10-19 15:00:19 +08:00
break;
case UpgradeType.UtBreak:
RefresshBreakBtn();
RefreshLevelBtn();//突破后等级可能会变
RefreshSkillBtn();//突破后技能可能会变
2023-10-19 15:00:19 +08:00
break;
case UpgradeType.UtUltraSkill:
RefreshSkillBtn();
break;
case UpgradeType.UtNone:
break;
case UpgradeType.UiMax:
break;
default:
DebugUtil.LogError("错误脱离switch");
throw new ArgumentOutOfRangeException(nameof(type), type, null);
}
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
2023-08-22 19:08:45 +08:00
private void OnRecvEventOpenBaseAttriUI()
{
SwitchChildUIForLeft(UILeftCharanterUIType.EbaseAttri);
}
private async void OnRecvEventOpenFavorableUI()
{
2024-04-01 14:52:25 +08:00
await UIFavorableController.Open(mCurCharaData);
2025-01-21 16:38:05 +08:00
2023-10-19 15:00:19 +08:00
ControllInput(false);
2023-08-22 19:08:45 +08:00
}
private void OnRecvEventOpenDetailUI()
{
SwitchChildUIForLeft(UILeftCharanterUIType.EDetailInfo);
}
private void OnSkinChange()
{
SetCurCharacterData(CharacterDataInfoManager.Instance.GetCharacterInfo(mCurCharaData.ID));//刷新角色数据
RefreshMiddle();
}
2023-08-22 19:08:45 +08:00
private void UnRegisterEvent()
{
EventManager.Instance.Unregister(EventManager.EventName.EN_CharacterLevelUp, (Action<UpgradeType>)OnCharacterLevelup);
2023-08-22 19:08:45 +08:00
EventManager.Instance.Unregister(EventManager.EventName.EN_ShowAllCharacterOpenDetailUI, OnRecvEventOpenDetailUI);
EventManager.Instance.Unregister(EventManager.EventName.EN_ShowAllCharacterFavorableUI, OnRecvEventOpenFavorableUI);
EventManager.Instance.Unregister(EventManager.EventName.EN_ShowAllCharacterOpenBaseAttriUI, OnRecvEventOpenBaseAttriUI);
EventManager.Instance.Unregister(EventManager.EventName.EN_UIControllCultivateMainInput, (Action<bool>)OnRecvEventControlInput);
EventManager.Instance.Unregister(EventManager.EventName.ItemUse, OnSkinChange);
2023-08-22 19:08:45 +08:00
}
private void OnRecvEventControlInput(bool isRegister)
{
ControllInput(isRegister);
}
private void ControllInput(bool isRegister)
{
if (isRegisterInput == isRegister)
{
return;
}
isRegisterInput = isRegister;
2023-08-22 19:08:45 +08:00
if (isRegister)
{
InputManager.Instance.OnFingerMoveUI += OnFingleSwipe;
}
else
{
InputManager.Instance.OnFingerMoveUI -= OnFingleSwipe;
}
}
2023-10-19 15:00:19 +08:00
protected override void OnHideWindow()
2023-08-22 19:08:45 +08:00
{
ControllInput(false);
CloseLeftCurChildUI();
2024-01-26 16:06:42 +08:00
//StopAllCoroutines();
2023-08-22 19:08:45 +08:00
}
public override void OnRelease()
{
base.OnRelease();
UnRegisterEvent();
}
2023-08-22 19:08:45 +08:00
float sumTime = 0;
2024-01-26 16:06:42 +08:00
protected override void OnUpdate()
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
if (!IsCanChange)
2023-08-22 19:08:45 +08:00
{
sumTime += Time.deltaTime;
2023-10-19 15:00:19 +08:00
if (sumTime >= 1)
2023-08-22 19:08:45 +08:00
{
IsCanChange = true;
sumTime = 0;
}
}
}
2024-10-15 19:13:49 +08:00
#region button_click
/// <summary>
/// 技能升级
/// </summary>
private async void OnButton_SkillPlusClick()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
if (mCurCharaData.UltraSkillLevel >= GetSkillMaxLevel())
{
string str = string.Format(CommonUtils.GetLocalizeText("cultivate_UltraSkillMax"),
CommonUtils.GetLocalizeText(E_LocalizePrefix.skill, nowSkillCfg.ID));
CommonUtils.ShowMessageTips(str);
2024-10-15 19:13:49 +08:00
return;
}
await UISkill_LevelUpController.Open(mCurCharaData);
ControllInput(false);
}
/// <summary>
/// 技能展开
/// </summary>
private void OnButton_ActiveSK_ArrowClick()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
if (mCurCharaData.HasPassiveSkillCount() != 0)
{
PlayAnimation(this.GetComponent<Animator>(), "Open ActiveSkill Animation");
}
RefreshActiveSkillBtn(true);
}
/// <summary>
/// 技能关闭
/// </summary>
private void OnButton_ActiveSK_ArrowCloseClick()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
if (mCurCharaData.HasPassiveSkillCount() != 0)
{
PlayAnimation(this.GetComponent<Animator>(), "Open ActiveSkill Back Animation");
}
RefreshActiveSkillBtn(false);
}
private void OnButton_BackClick()
{
#region 释放预加载
ClosePreloadChildUI();
#endregion
CloseWindow();
}
2025-01-21 16:38:05 +08:00
private async void OnButton_AttriClick()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
await UI_CultivateDetailNewController.Open(mCurCharaData);
ControllInput(false);
}
2024-10-15 19:13:49 +08:00
/// <summary>
/// 查看当前立绘与模型
/// </summary>
2023-08-22 19:08:45 +08:00
private async void OnButton_LookClick()
{
2024-10-15 19:13:49 +08:00
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
2024-04-09 18:52:32 +08:00
await UIPosterController.Open(mCurCharaData);
2024-10-15 19:13:49 +08:00
2023-08-22 19:08:45 +08:00
ControllInput(false);
}
2024-10-15 19:13:49 +08:00
/// <summary>
/// 更换皮肤
/// </summary>
private async void OnButton_ChangeSuit()
{
2024-10-15 19:13:49 +08:00
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
await SkinChangeController.Open(mCurCharaData);
2024-06-24 13:53:23 +08:00
ControllInput(false);
}
2024-10-15 19:13:49 +08:00
/// <summary>
/// 升级界面
/// </summary>
private async void OnButton_LevelUpClick()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
await UILevelUpController.Open(mCurCharaData);
ControllInput(false);
}
/// <summary>
/// BreakLevel升级界面
/// </summary>
private async void OnButton_RankPlusClick()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
if (mCurCharaData.BreakLevel >= mCurCharaData.GetMaxBreakLevel())
{
CommonUtils.ShowMessageTips(CommonUtils.GetLocalizeText("cultivate_BreakPassiveSkillMax"));
return;
}
await UIRankController.Open(mCurCharaData);
ControllInput(false);
}
/// <summary>
/// AwakeLevel升级界面
/// </summary>
private async void OnButton_Awake()
{
AudioManager.Instance.PlayAudio(Constants.Sound.COMMON_CLICK);
if (mCurCharaData.AwakeLevel >= mCurCharaData.GetMaxAwakeLevel())
{
CommonUtils.ShowMessageTips(CommonUtils.GetLocalizeText("cultivate_AwakePassiveSkill"));
return;
}
await UIAdvanceController.Open(mCurCharaData);
ControllInput(false);
}
2025-03-25 19:15:55 +08:00
private async void OnClickHome()
2024-10-15 19:13:49 +08:00
{
#region 释放预加载
ClosePreloadChildUI();
#endregion
2025-03-25 19:15:55 +08:00
2025-03-25 19:29:50 +08:00
CommonUtils.BackToHome();
2024-10-15 19:13:49 +08:00
}
#endregion
2023-08-22 19:08:45 +08:00
public void SetCharaInfoInOpen(CharacterDataInfo info, List<CharacterDataInfo> mInfos)
{
PreLoadCfg();
GetStorageCharacterDataInfo(mInfos);
SetCurCharacterData(info);
2025-01-21 16:38:05 +08:00
RefreshLeft();
2023-08-22 19:08:45 +08:00
RefreshMiddle();
RefreshRight();
SetFingerMove();
2024-12-24 13:59:36 +08:00
var id = info.ID;
if (CharacterDataHelper.IsNewCharacter((int)id))
{
2024-12-24 13:59:36 +08:00
NetHelper.CheckCharacter((int)id);
}
2023-08-22 19:08:45 +08:00
}
private void SetFingerMove()
{
}
private void OnFingerEvent(Vector2 delta)
{
}
private void PreLoadCfg()
{
characterAttriCfg = TableManager.Instance.Tables.CharacterAttri;
characterBreakCfg = TableManager.Instance.Tables.CharacterBreak;
LevelExpCfg = TableManager.Instance.Tables.CharacterLevelExp;
skillConfig = TableManager.Instance.Tables.SkillConfig;
characterSkillLevelCfg = TableManager.Instance.Tables.CharacterSkillLevel;
factionAttriCfg = TableManager.Instance.Tables.FactionAttri;
jobAttriCfg = TableManager.Instance.Tables.JobAttri;
}
2025-01-21 16:38:05 +08:00
private void RefreshLeft()
{
RefreshFavorableInfo();
RefreshBasicInfo();
//SetCommanderTeamJob();
}
2024-04-02 14:18:40 +08:00
private async void RefreshMiddle()
2023-08-22 19:08:45 +08:00
{
2024-05-08 17:04:37 +08:00
var imgPath =
CommonUtils.GetCharacterPicPath(mCurCharaData.Cfg.RoleID, CommonUtils.ECharacterPicPathType.Cultivate, (int)mCurCharaData.SkinID);
2024-05-08 17:04:37 +08:00
var sprite = await LoadAssetAsync<Sprite>(imgPath);
CommonUtils.RefreshCharacter2DPic(character2dPic, sprite);
Text_CharacterName.text = CommonUtils.GetCharacterName(mCurCharaData.Cfg.RoleID);
Text_CommandCost.text = mCurCharaData.SpendLeadership().ToString();
string fractionPath = factionAttriCfg.GetOrDefault((int)(characterAttriCfg.Get(mCurCharaData.Cfg.RoleID).FacIcon)).IconPath;
2025-01-21 16:38:05 +08:00
GetComponent<Image>("Image_BG/Image_GroupLogo").sprite =
2024-05-06 16:56:20 +08:00
await LoadAssetAsync<Sprite>(fractionPath);
var flagPath = "Assets/Art/UI/Texture/Icon/CharacterRegion/" + factionAttriCfg.GetOrDefault((int)(characterAttriCfg.Get(mCurCharaData.Cfg.RoleID).FacIcon)).FlagPicPath;
GetComponent<Image>("Image_BG/Image_CharacterRegion").sprite =
await LoadAssetAsync<Sprite>(flagPath);
2023-10-19 15:00:19 +08:00
string jobPath = jobAttriCfg.Get((int)(characterAttriCfg.Get(mCurCharaData.Cfg.RoleID).Job)).IconPath;
2024-05-06 16:56:20 +08:00
Image_Profession_Logo.sprite = await LoadAssetAsync<Sprite>(jobPath);
2023-08-22 19:08:45 +08:00
for (int i = 0; i < 4; i++)
{
2024-04-02 14:18:40 +08:00
GameObject tempStar = FindObj(string.Format("Image_BG/Image_NameInfo/Star/{0}", i + 1));
2023-08-22 19:08:45 +08:00
2023-10-19 15:00:19 +08:00
if ((i + 2) <= mCurCharaData.Cfg.StartStar)
2023-08-22 19:08:45 +08:00
{
tempStar.SetActive(true);
2023-10-19 15:00:19 +08:00
}
else
2023-08-22 19:08:45 +08:00
{
tempStar.SetActive(false);
}
}
}
private void RefreshRight()
{
RefreshLevelBtn();
RefresshBreakBtn();
RefreshAwakeBtn();
RefreshSkillBtn();
}
2023-10-19 15:00:19 +08:00
private void RefreshActiveSkillBtn(bool isActive = false)
{
GameObject skillObj = FindObj("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill");
GameObject openObj = FindObj("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open");
skillObj.SetActive(!isActive);
openObj.SetActive(isActive);
}
2023-08-22 19:08:45 +08:00
2023-10-19 15:00:19 +08:00
private async void RefreshSkillBtn()
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
RefreshActiveSkillBtn();
nowSkillCfg = skillConfig.Get(CharacterDataHelper.GetCharacterSkillId(mCurCharaData));
2024-05-06 16:56:20 +08:00
if (nowSkillCfg == null)
{
DebugUtil.LogError($"技能表找不到对应配置RoleID:{mCurCharaData.ID}");
}
2023-10-19 15:00:19 +08:00
List<showSkillBar> showSkillBars = new List<showSkillBar>();
if (mCurCharaData.GetBreakPassiveId() != 0)
{
showSkillBars.Add(new showSkillBar(TableManager.Instance.Tables.SkillConfig.GetOrDefault(mCurCharaData.GetBreakPassiveId()), true));
}
if (mCurCharaData.GetAwakePassiveId() != 0)
{
showSkillBars.Add(new showSkillBar(TableManager.Instance.Tables.SkillConfig.GetOrDefault(mCurCharaData.GetAwakePassiveId()), false));
}
2025-01-21 16:38:05 +08:00
2023-10-19 15:00:19 +08:00
Text_CDTme.text = nowSkillCfg.ChargeParam.ToString();
2023-10-19 15:00:19 +08:00
Image_Max.gameObject.SetActive(mCurCharaData.UltraSkillLevel >= mCurCharaData.GetMaxUltralSkillLevel());
Text_ActiveSkillName.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.skill, nowSkillCfg.ID);
2023-10-19 15:00:19 +08:00
2025-01-21 16:38:05 +08:00
Image_SkillLogo.sprite = await LoadAssetAsync<Sprite>(Framework.Constants.UI_Cultivata_skillIconFolder + nowSkillCfg.IconPath);
2023-10-19 15:00:19 +08:00
for (int i = 0; i < 2; i++)
{
GameObject obj = FindObj(string.Format("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/passive/{0}", (i + 1).ToString()));
if (i < showSkillBars.Count)
{
obj.SetActive(true);
2024-04-12 19:35:21 +08:00
//CommonUtils.GetComponent<TMP_Text>(obj, "skillName").text = CommonUtils.GetLocalizeText((showSkillBars[i].Cfg.Name));
2023-10-19 15:00:19 +08:00
string colorSprStr;
if (showSkillBars[i].IsBreak)
{
colorSprStr = "Assets/Art/UI/Texture/UI_Pic_Main/UI_Pic_CultivateAll/UI_SkillLevelUp/UI_Blue.png";
}
else
{
colorSprStr = "Assets/Art/UI/Texture/UI_Pic_Main/UI_Pic_CultivateAll/UI_SkillLevelUp/UI_Brown.png";
}
2024-05-06 16:56:20 +08:00
obj.GetComponent<Image>().sprite = await LoadAssetAsync<Sprite>(colorSprStr);
2025-01-21 16:38:05 +08:00
}
else
2023-10-19 15:00:19 +08:00
{
obj.SetActive(false);
}
}
GetComponent<TMP_Text>("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill/Text_Class/Text_Class_Value").text = CommonUtils.GetRomanCode((int)mCurCharaData.UltraSkillLevel);
2023-10-19 15:00:19 +08:00
//不考虑被动技能没有的情况,后面加
2025-01-21 16:38:05 +08:00
bool isShow = mCurCharaData.UltraSkillLevel >= mCurCharaData.GetMaxUltralSkillLevel();
CommonUtils.GetGameObject(Image_UI_Cultivate_ActiveSkill_Open.gameObject, "Image_Max_Open").SetActive(isShow);
2024-05-06 16:56:20 +08:00
Image_SkillLogo_Open.sprite = await LoadAssetAsync<Sprite>(Framework.Constants.UI_Cultivata_skillIconFolder + nowSkillCfg.IconPath);
2025-01-21 16:38:05 +08:00
Text_CDTme_Open.text = nowSkillCfg.ChargeParam.ToString();
Text_ActiveSkillName_Open.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.skill, nowSkillCfg.ID);
Text_ActiveSkill_Info.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.skill_desc, nowSkillCfg.ID);
//GameObject sumObj = FindObj("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open/Text_ActiveSkill_Info/Text_PassiveSkill");
var awakenSkillGo = CommonUtils.GetGameObject(Text_PassiveSkill_Open.gameObject, "1");
var breakSkillGo = CommonUtils.GetGameObject(Text_PassiveSkill_Open.gameObject, "2");
2024-05-06 16:56:20 +08:00
awakenSkillGo.GetComponent<Image>().sprite = await LoadAssetAsync<Sprite>(
2024-04-12 19:35:21 +08:00
"Assets/Art/UI/Texture/UI_Pic_Main/UI_Pic_CultivateAll/UI_SkillLevelUp/UI_Blue.png");
2024-05-06 16:56:20 +08:00
breakSkillGo.GetComponent<Image>().sprite = await LoadAssetAsync<Sprite>
2024-04-12 19:35:21 +08:00
("Assets/Art/UI/Texture/UI_Pic_Main/UI_Pic_CultivateAll/UI_SkillLevelUp/UI_Brown.png");
2024-08-30 16:34:40 +08:00
CommonUtils.GetGameObject(awakenSkillGo, "tip").SetActive(mCurCharaData.AwakeLevel < mCurCharaData.GetMaxAwakeLevel());
CommonUtils.GetGameObject(breakSkillGo, "tip").SetActive(mCurCharaData.BreakLevel < mCurCharaData.GetMaxBreakLevel());
2024-04-12 19:35:21 +08:00
var txtSkillNameBreak = CommonUtils.GetComponent<TMP_Text>(breakSkillGo, "skillName");
var txtSkillDescBreak = CommonUtils.GetComponent<TMP_Text>(breakSkillGo, "skillinfo");
var txtAwakenNameBreak = CommonUtils.GetComponent<TMP_Text>(awakenSkillGo, "skillName");
var txtAwakenDescBreak = CommonUtils.GetComponent<TMP_Text>(awakenSkillGo, "skillinfo");
2024-04-12 19:50:56 +08:00
var skillGo = CommonUtils.GetGameObject(Image_UI_Cultivate_ActiveSkill.gameObject, "passive");
2024-04-13 15:25:00 +08:00
var txtBreakName = CommonUtils.GetComponent<TMP_Text>(skillGo, "2/skillName");
var txtAwakenName = CommonUtils.GetComponent<TMP_Text>(skillGo, "1/skillName");
2025-01-21 16:38:05 +08:00
2024-04-12 19:35:21 +08:00
var breakPassiveID = mCurCharaData.BreakCfg.PassiveSkillID;
var breakSkillCfg = TableManager.Instance.Tables.PassiveSkillConfig.Get(breakPassiveID);
if (breakSkillCfg == null)
2023-10-19 15:00:19 +08:00
{
2024-04-12 19:35:21 +08:00
DebugUtil.LogError("breakPassive ID 不存在!! ID: " + breakPassiveID);
2023-10-19 15:00:19 +08:00
}
2024-04-12 19:35:21 +08:00
else
{
2024-07-10 17:36:22 +08:00
txtSkillNameBreak.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.PassiveSkill, breakPassiveID);
txtSkillDescBreak.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.PassiveSkillDesc, breakPassiveID);
txtBreakName.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.PassiveSkill, breakPassiveID);
2024-04-12 19:35:21 +08:00
}
2025-01-21 16:38:05 +08:00
2024-04-12 19:35:21 +08:00
var awakenPassiveID = mCurCharaData.AwakeCfg.PassiveSkillID;
var awakenSkillCfg = TableManager.Instance.Tables.PassiveSkillConfig.Get(awakenPassiveID);
if (awakenSkillCfg == null)
{
DebugUtil.LogError("awakenPassive ID 不存在!! ID: " + awakenPassiveID);
}
else
{
2024-07-10 17:36:22 +08:00
txtAwakenNameBreak.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.PassiveSkill, awakenPassiveID);
txtAwakenDescBreak.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.PassiveSkillDesc, awakenPassiveID);
txtAwakenName.text = CommonUtils.GetLocalizeText(E_LocalizePrefix.PassiveSkill, awakenPassiveID);
2024-04-12 19:35:21 +08:00
}
2023-10-19 15:00:19 +08:00
GameObject skillPanelObj = FindObj("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open");
float wholeBarHeight = 0;
switch (showSkillBars.Count)
{
case 0:
wholeBarHeight = 198.16f;
skillPanelObj.GetComponent<RectTransform>().localPosition = new Vector3(1, -134.08f, 0);
2025-01-21 16:38:05 +08:00
Text_PassiveSkill_Open.gameObject.SetActive(false);
2023-10-19 15:00:19 +08:00
break;
case 1:
wholeBarHeight = 410.35f;
skillPanelObj.GetComponent<RectTransform>().localPosition = new Vector3(1, -33f, 0);
2025-01-21 16:38:05 +08:00
Text_PassiveSkill_Open.gameObject.SetActive(true);
2023-10-19 15:00:19 +08:00
break;
case 2:
wholeBarHeight = 617.44f;
skillPanelObj.GetComponent<RectTransform>().localPosition = new Vector3(1, -33f, 0);
2025-01-21 16:38:05 +08:00
Text_PassiveSkill_Open.gameObject.SetActive(true);
2023-10-19 15:00:19 +08:00
break;
2023-08-22 19:08:45 +08:00
2023-10-19 15:00:19 +08:00
}
FindObj(string.Format("Image_BG/UI_Cultivate_ActSk/Image_UI_Cultivate_ActiveSkill_Open")).GetComponent<RectTransform>().sizeDelta = new Vector2(598, wholeBarHeight);
2025-01-21 16:38:05 +08:00
Text_Class_Value_Open.text = CommonUtils.GetRomanCode((int)mCurCharaData.UltraSkillLevel);
2023-10-19 15:00:19 +08:00
}
struct showSkillBar
{
public DataSkill Cfg;
public bool IsBreak;
public showSkillBar(DataSkill cfg, bool v) : this()
{
Cfg = cfg;
this.IsBreak = v;
}
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
int GetSkillMaxLevel()
2023-08-22 19:08:45 +08:00
{
int maxlevel = 0;
for (int i = 0; i < characterSkillLevelCfg.DataList.Count; i++)
{
DataCharacterSkillLevel skillLevelCfg = characterSkillLevelCfg.DataList[i];
2023-10-19 15:00:19 +08:00
if (skillLevelCfg.RoleID == mCurCharaData.Cfg.RoleID)
2023-08-22 19:08:45 +08:00
{
if (skillLevelCfg.SkillLevel > maxlevel)
{
maxlevel = skillLevelCfg.SkillLevel;
}
}
}
return maxlevel;
}
2025-01-21 16:38:05 +08:00
private void RefreshFavorableInfo()
{
var characterLikabilityCfg = TableManager.Instance.Tables.CharacterLikability;
int nowExp = (int)mCurCharaData.LikelyExp;
var likelyCfg = characterLikabilityCfg.Get((int)mCurCharaData.ID, (int)mCurCharaData.LikelyLevel + 1);
Text_FavorRankNumber.text = mCurCharaData.LikelyLevel.ToString();
Text_FavorNumber.text = "-/-";
Image_Favor.GetComponentInChildren<Slider>().value = 1f;
if (likelyCfg == null)
{
DebugUtil.Log($"好感表配置有误角色ID:{mCurCharaData.ID},好感度等级:{mCurCharaData.LikelyLevel + 1}");
return;
}
int fullExp = likelyCfg.LikabilityExp;
2023-08-22 19:08:45 +08:00
2025-01-21 16:38:05 +08:00
Text_FavorNumber.text = nowExp + "/" + fullExp;
Image_Favor.GetComponentInChildren<Slider>().value = (float)nowExp / (float)fullExp;
}
private void RefreshBasicInfo()
{
Text_AttriHpNumber.text = mCurCharaData.HP().ToString();
Text_AttriBulletAttack.text = mCurCharaData.Attack().ToString();
Text_AttriBulletCapacity.text = mCurCharaData.BulletCapacity().ToString();
Text_AttriShiledfNumber.text = mCurCharaData.Armor().ToString();
Text_AttriDefNumber.text = mCurCharaData.Defence().ToString();
Text_AttriMoveNumber.text = mCurCharaData.MoveSpeed().ToString();
Text_AttriSoliNumber.text = mCurCharaData.Cfg.MaxMorale.ToString();
Text_AttriWeapom.text = mCurCharaData.WeaponName();
2025-03-12 19:44:21 +08:00
Text_AttriProfiNumber.text = string.Format("{0}%", (int)(mCurCharaData.WeaponDegree() * 100));
2025-01-21 16:38:05 +08:00
//var jobCfg = jobAttri.Get((int)mCharacterInfo.Cfg.Job);
//if (jobCfg == null)
//{
// DebugUtil.LogError($"职业配置为空RoleID:{mCharacterInfo.ID}");
//}
//else
// Text_Profession_Info.text = CommonUtils.GetLocalizeText(jobCfg.DisplayName);
var factionAttri = TableManager.Instance.Tables.FactionAttri;
var armyAttri = TableManager.Instance.Tables.ArmyAttri;
var factionCfg = factionAttri.Get((int)CommonUtils.GetEfactionByCfg(mCurCharaData.Cfg));
2025-03-12 14:29:52 +08:00
Text_AttriBelong.text = mCurCharaData.CharacterBelong();
2025-01-21 16:38:05 +08:00
var distanceScale = mCurCharaData.Cfg.ShootDistanceScale;
foreach (Transform child in ScrollView_DistanceScale.content.transform)
2025-01-21 16:38:05 +08:00
{
child.gameObject.SetActive(false);
}
for (int i = 0; i < distanceScale.Count; i++)
{
GameObject item = null;
if (i < ScrollView_DistanceScale.content.transform.childCount)
item = ScrollView_DistanceScale.content.transform.GetChild(i)?.gameObject;
else
item = Instantiate(ScrollView_DistanceScale.itemTemplate.gameObject, ScrollView_DistanceScale.content);
item.gameObject.SetActive(true);
2025-01-21 16:38:05 +08:00
CommonUtils.GetComponent<TMP_Text>(item, "Bg/Text (TMP)").text = distanceScale[i].ToString();
}
SetCommanderTeamJob();
}
void SetCommanderTeamJob()
{
List<ProvideJob> provideJobs = null;
if (mCurCharaData.Cfg.Job == Ejob.Job_Commander)
{
provideJobs = CharacterDataInfoManager.Instance.GetCommanderProvideJobs(mCurCharaData.ID);
}
var parent = GetComponent<PhxhSDK.PhxhScrollView>("AttributeNode/ScrollView").content;
foreach (Transform child in parent.transform)
{
Destroy(child.gameObject);
}
if (provideJobs != null)
{
foreach (var job in provideJobs)
{
switch (job)
{
case ProvideJob.ProvideJob_Support:
GameObject cloneJob1 = Instantiate(FindObj("AttributeNode/ScrollView/Viewport/Item1").gameObject, parent.transform);
cloneJob1.gameObject.SetActive(true);
break;
case ProvideJob.ProvideJob_Shoot:
GameObject cloneJob2 = Instantiate(FindObj("AttributeNode/ScrollView/Viewport/Item2").gameObject, parent.transform);
cloneJob2.gameObject.SetActive(true);
break;
case ProvideJob.ProvideJob_Scout:
GameObject cloneJob3 = Instantiate(FindObj("AttributeNode/ScrollView/Viewport/Item3").gameObject, parent.transform);
cloneJob3.gameObject.SetActive(true);
break;
case ProvideJob.ProvideJob_Suppress:
GameObject cloneJob4 = Instantiate(FindObj("AttributeNode/ScrollView/Viewport/Item4").gameObject, parent.transform);
cloneJob4.gameObject.SetActive(true);
break;
case ProvideJob.ProvideJob_Unlimited:
GameObject cloneJob5 = Instantiate(FindObj("AttributeNode/ScrollView/Viewport/Item5").gameObject, parent.transform);
cloneJob5.gameObject.SetActive(true);
break;
case ProvideJob.ProvideJob_Vehicle:
GameObject cloneJob6 = Instantiate(FindObj("AttributeNode/ScrollView/Viewport/Item6").gameObject, parent.transform);
cloneJob6.gameObject.SetActive(true);
break;
}
}
}
}
2023-08-22 19:08:45 +08:00
2023-10-19 15:00:19 +08:00
private async void RefreshAwakeBtn()
2023-08-22 19:08:45 +08:00
{
var awakeCfg =
TableManager.Instance.Tables.CharacterAwaking.Get(mCurCharaData.Cfg.RoleID, (int)mCurCharaData.AwakeLevel);
2023-10-19 15:00:19 +08:00
for (int i = 0; i < Constants.ADVANCE_FLAG_UI; i++)
2023-08-22 19:08:45 +08:00
{
int level = i + 1;//从等级1开始计算觉醒标记
if (level < mCurCharaData.AwakeLevel)//已达成觉醒等级
2023-08-22 19:08:45 +08:00
{
var table = TableManager.Instance.Tables.CharacterAwaking.Get(mCurCharaData.Cfg.RoleID, level);
2024-05-06 16:56:20 +08:00
if (table == null)
{
DebugUtil.LogError($"觉醒表未配置iconRoleID: {mCurCharaData.Cfg.RoleID}");
return;
}
var path = table.IconDarkPath;
2024-08-26 11:26:21 +08:00
var pathList = path.Split('_').ToList();
pathList.Insert(pathList.Count - 1, "NoName");
var NoNameIconPath = string.Join("_", pathList);
advanceImageList[i].sprite = await LoadAssetAsync<Sprite>(Constants.UI_Cultivata_AwakeIconFolder + NoNameIconPath);
advanceImageList[i].gameObject.SetActive(true);
2023-08-22 19:08:45 +08:00
}
else if (level == mCurCharaData.AwakeLevel)//当前最高等级,标签高亮
2023-08-22 19:08:45 +08:00
{
var table = TableManager.Instance.Tables.CharacterAwaking.Get(mCurCharaData.Cfg.RoleID, level);
2024-05-06 16:56:20 +08:00
if (table == null)
{
DebugUtil.LogError($"觉醒表未配置iconRoleID: {mCurCharaData.Cfg.RoleID}");
return;
}
var path = table.IconLightPath;
2024-05-06 16:56:20 +08:00
advanceImageList[i].sprite = await LoadAssetAsync<Sprite>(Constants.UI_Cultivata_AwakeIconFolder + path);
advanceImageList[i].gameObject.SetActive(true);
}
else//尚未觉醒进度
{
//var table = TableManager.Instance.Tables.CharacterAwaking.Get(mCurCharaData.Cfg.RoleID, level);
//if (table == null)
//{
// DebugUtil.LogError($"觉醒表未配置iconRoleID: {mCurCharaData.Cfg.RoleID}");
// return;
//}
//var path = table.IconDarkPath;
//advanceImageList[i].sprite = await LoadAssetAsync<Sprite>(Constants.UI_Cultivata_AwakeIconFolder + path);
advanceImageList[i].gameObject.SetActive(false);
2023-08-22 19:08:45 +08:00
}
}
Text_AdvanceName.text = CommonUtils.GetLocalizeText(awakeCfg.Name);
var redPoint = GetComponent<RedPointUIController>("Image_BG/Image_AdvanceLevel/UI_RedPoint");//.NodeID = mCurCharaData.CharacterAwakingNode.ID;
redPoint.NodeID = CharacterDataInfoManager.Instance.GetCharacterInfo(mCurCharaData.ID).CharacterAwakingNode.ID;
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
private async void RefresshBreakBtn()
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
int maxBreakLevel = mCurCharaData.GetMaxBreakLevel();
2023-08-22 19:08:45 +08:00
DataCharacterBreak breakCfg = characterBreakCfg.Get(mCurCharaData.Cfg.RoleID, (int)mCurCharaData.BreakLevel);
2024-08-13 13:53:46 +08:00
//Button_RankPlus.gameObject.SetActive(!(mCurCharaData.BreakLevel == maxBreakLevel));
//Image_Rank_04.gameObject.SetActive(mCurCharaData.BreakLevel == maxBreakLevel);
2023-10-19 15:00:19 +08:00
int startlv = 0;
if (mCurCharaData.BreakLevel >= maxBreakLevel)
{
startlv = (int)mCurCharaData.BreakLevel - Constants.BREAK_FLAG_UI + 1;
}
else if (mCurCharaData.BreakLevel <= Constants.BREAK_FLAG_UI)
{
startlv = 1;
}
else
{
startlv = (int)mCurCharaData.BreakLevel - Constants.BREAK_FLAG_UI + 1;
}
for (int i = 0; i < Constants.BREAK_FLAG_UI; i++)
2023-08-22 19:08:45 +08:00
{
2024-08-13 13:53:46 +08:00
if ((startlv + i) <= mCurCharaData.BreakLevel)
2023-08-22 19:08:45 +08:00
{
2024-05-06 16:56:20 +08:00
var table = characterBreakCfg.Get(mCurCharaData.Cfg.RoleID, (startlv + i));
if (table == null)
{
DebugUtil.LogError($"突破表未配置iconRoleID: {mCurCharaData.Cfg.RoleID}");
return;
}
var cfgPath = table.IconPathLight;
rankImageList[i].sprite = await LoadAssetAsync<Sprite>(Constants.UI_Cultivata_BreakIconFolder + cfgPath);
2024-02-21 17:15:24 +08:00
CommonUtils.SetImageGrayByChangeColor(rankImageList[i], false);
2023-08-22 19:08:45 +08:00
}
else
{
2024-05-06 16:56:20 +08:00
var table = characterBreakCfg.Get(mCurCharaData.Cfg.RoleID, (startlv + i));
if (table == null)
{
DebugUtil.LogError($"突破表未配置iconRoleID: {mCurCharaData.Cfg.RoleID}");
return;
}
var cfgPath = table.IconPathLight;
rankImageList[i].sprite = await LoadAssetAsync<Sprite>(Constants.UI_Cultivata_BreakIconFolder + cfgPath);
2025-01-21 16:38:05 +08:00
CommonUtils.SetImageGrayByChangeColor(rankImageList[i], true);
2023-08-22 19:08:45 +08:00
}
}
Text_RankName.text = CommonUtils.GetLocalizeText(breakCfg.Name);
2023-08-22 19:08:45 +08:00
}
private void RefreshLevelBtn()
{
uint nowLevel = mCurCharaData.Level;
2024-04-23 12:55:16 +08:00
DataCharacterBreak dataCharacterBreak = characterBreakCfg.Get(mCurCharaData.Cfg.RoleID, (int)mCurCharaData.BreakLevel);
if (dataCharacterBreak == null)
{
DebugUtil.LogError("获取配置表失败");
return;
}
int maxLevel = dataCharacterBreak.LevelLimit;
2023-10-19 15:00:19 +08:00
try
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
if (nowLevel == maxLevel)
{
FindObj("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level").SetActive(false);
FindObj("Image_BG/UI_Cultivate_Level/ImageUI_Level_Max").SetActive(true);
if (mCurCharaData.BreakLevel < mCurCharaData.GetMaxBreakLevel())
{
Button_LevelPlusLimited.gameObject.SetActive(true);
}
else
{
Button_LevelPlusLimited.gameObject.SetActive(false);
}
2023-10-19 15:00:19 +08:00
Image_LevelBar_Max.fillAmount = 1;
2024-07-25 20:08:53 +08:00
Image_Level_Arrow.GetComponent<RectTransform>().anchoredPosition = new Vector2(0, -ArrowRadius);
Image_Level_Arrow.transform.rotation = Quaternion.identity;
2023-10-19 15:00:19 +08:00
Text_Level_Now_Full.text = nowLevel.ToString();
Text_Level_Max_Full.text = nowLevel.ToString();
}
else
{
FindObj("Image_BG/UI_Cultivate_Level/ImageUI_Cultivate_Level").SetActive(true);
FindObj("Image_BG/UI_Cultivate_Level/ImageUI_Level_Max").SetActive(false);
2024-07-25 20:08:53 +08:00
float fillAmount = (float)mCurCharaData.Exp / LevelExpCfg.Get((int)nowLevel + 1).EXP;
Image_LevelBar.fillAmount = fillAmount;//(float)mCurCharaData.Level / (float)characterBreakCfg.Get(mCurCharaData.Cfg.RoleID, (int)mCurCharaData.BreakLevel).LevelLimit;
var angle = -360 * fillAmount;
Image_Level_Arrow.transform.rotation = Quaternion.Euler(0, 0, angle);
float posX = Mathf.Sin(angle * Mathf.Deg2Rad) * ArrowRadius;
float posY = -Mathf.Cos(angle * Mathf.Deg2Rad) * ArrowRadius;
Image_Level_Arrow.GetComponent<RectTransform>().anchoredPosition = new Vector2(posX, posY);
2023-10-19 15:00:19 +08:00
Text_Level_Now.text = nowLevel.ToString();
Text_Level_Max.text = "/" + maxLevel.ToString();
Text_Exp_Now.text = "<color=#ADAF30>" + mCurCharaData.Exp.ToString() + "</color>" + "/" + LevelExpCfg.Get((int)nowLevel + 1).EXP.ToString();
}
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
catch (Exception e)
2023-08-22 19:08:45 +08:00
{
2023-10-19 15:00:19 +08:00
//ignore
2023-08-22 19:08:45 +08:00
}
2025-01-21 16:38:05 +08:00
2023-08-22 19:08:45 +08:00
}
void SetCurCharacterData(CharacterDataInfo dataInfo)
{
mCurCharaData = dataInfo;
}
void RefreshCurCharacterDataInfo(int index)
{
mCurCharaData = characterDataInfos[index];
2025-01-21 16:38:05 +08:00
var id = mCurCharaData.ID;
2024-12-24 13:59:36 +08:00
if (CharacterDataHelper.IsNewCharacter((int)id))
{
2024-12-24 13:59:36 +08:00
NetHelper.CheckCharacter((int)id);
}
2023-08-22 19:08:45 +08:00
}
2024-12-24 13:59:36 +08:00
2023-08-22 19:08:45 +08:00
void GetStorageCharacterDataInfo(List<CharacterDataInfo> dataInfos)
{
characterDataInfos.Clear();
characterDataInfos.AddRange(dataInfos);
if (characterDataInfos.Count == 0)
{
DebugUtil.LogError("当前人物列表为空,请检查配置");
}
}
2024-01-26 16:06:42 +08:00
private async void OnButton_RightArrowsClick()
2023-08-22 19:08:45 +08:00
{
int nowIndex = ReturnCorrectCharacterIndex(mCurIndex + 1);
mCurIndex = nowIndex;
RefreshCurCharacterDataInfo(mCurIndex);
2023-10-19 15:00:19 +08:00
RefreshChildUIForLeft();
2024-08-30 16:34:40 +08:00
RefreshActiveSkillBtn(false);//动画播放时默认关闭技能详情界面
2025-02-13 14:12:23 +08:00
PlayChangeOutLeftAnimation();
await RefreshAfterAniChangeOutLeft();
2024-01-26 16:06:42 +08:00
//StartCoroutine(_coroutine);
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
private int ReturnCorrectCharacterIndex(int index)
2023-08-22 19:08:45 +08:00
{
if (index < 0)
{
index = characterDataInfos.Count - 1;
}
if (index > characterDataInfos.Count - 1)
{
index = 0;
}
return index;
}
2023-10-19 15:00:19 +08:00
private IEnumerator _coroutine;
2024-01-26 16:06:42 +08:00
private async void OnButton_LeftArrowsClick()
2023-08-22 19:08:45 +08:00
{
int nowIndex = ReturnCorrectCharacterIndex(mCurIndex - 1);
mCurIndex = nowIndex;
RefreshCurCharacterDataInfo(mCurIndex);
2023-10-19 15:00:19 +08:00
RefreshChildUIForLeft();
2024-08-30 16:34:40 +08:00
RefreshActiveSkillBtn(false);//动画播放时默认关闭技能详情界面
2025-02-13 14:12:23 +08:00
PlayChangeOutRightAnimation();
await RefreshAfterAniChangeOutRight();
2024-01-26 16:06:42 +08:00
//StartCoroutine(_coroutine);
2023-10-19 15:00:19 +08:00
}
2023-08-22 19:08:45 +08:00
2025-02-13 14:12:23 +08:00
private async UniTask RefreshAfterAniChangeOutLeft()
2023-10-19 15:00:19 +08:00
{
2024-01-26 16:06:42 +08:00
await UniTask.Delay(500);
if (!gameObject)
{
return;
}
2025-01-21 16:38:05 +08:00
RefreshLeft();
2023-08-22 19:08:45 +08:00
RefreshMiddle();
RefreshRight();
2025-02-13 14:12:23 +08:00
PlayChangeInAnimationLeft();
2023-08-22 19:08:45 +08:00
}
2025-02-13 14:12:23 +08:00
private async UniTask RefreshAfterAniChangeOutRight()
2023-08-22 19:08:45 +08:00
{
2025-02-13 14:12:23 +08:00
await UniTask.Delay(500);
if (!gameObject)
{
return;
}
RefreshLeft();
RefreshMiddle();
RefreshRight();
PlayChangeInAnimationRight();
2023-10-19 15:00:19 +08:00
2025-02-13 14:12:23 +08:00
}
2023-10-19 15:00:19 +08:00
2025-02-13 14:12:23 +08:00
private void PlayChangeInAnimationLeft()
{
// PlayAnimation(GetComponent<Animator>(), "NameInfo_ChangeOut");
GetComponent<Animator>().Play("MoveL_IN", 0, 0);
}
private void PlayChangeInAnimationRight()
{
// PlayAnimation(GetComponent<Animator>(), "NameInfo_ChangeOut");
GetComponent<Animator>().Play("MoveR_IN", 0, 0);
2023-10-19 15:00:19 +08:00
}
2025-02-13 14:12:23 +08:00
2023-10-19 15:00:19 +08:00
private void PlayAnimation(Animator animator, string animationNmae)
{
animator.enabled = true;
animator.Play(animationNmae, 0, 0);
}
2025-02-13 14:12:23 +08:00
private void PlayChangeOutLeftAnimation()
{
GetComponent<Animator>().speed = 1;
PlayAnimation(GetComponent<Animator>(), "MoveL_OUT");
}
private void PlayChangeOutRightAnimation()
2023-10-19 15:00:19 +08:00
{
GetComponent<Animator>().speed = 1;
2025-02-13 14:12:23 +08:00
PlayAnimation(GetComponent<Animator>(), "MoveR_OUT");
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
2023-08-22 19:08:45 +08:00
void SwitchChildUIForLeft(UILeftCharanterUIType uIChracterType)
{
CloseLeftCurChildUI();
OpenLeftChildUI(uIChracterType);
mCurLeftUICharacterType = uIChracterType;
}
2023-10-19 15:00:19 +08:00
void RefreshChildUIForLeft()
2023-08-22 19:08:45 +08:00
{
2025-01-21 16:38:05 +08:00
//switch (mCurLeftUICharacterType)
//{
// case UILeftCharanterUIType.EDetailInfo:
// if (detailWindow != null)
// {
// detailWindow.RefreshOnChangePlay(mCurCharaData);
// }
// break;
// case UILeftCharanterUIType.EbaseAttri:
// if (proAndInfoWindow != null)
// {
// proAndInfoWindow.RefreshOnChangePlay(mCurCharaData);
// }
// break;
// default:
// DebugUtil.LogError("= =常理来说应该走不到这里但是我也不知道为甚么要加但是还是加了reshaper好怪");
// throw new ArgumentOutOfRangeException();
//}
2023-10-19 15:00:19 +08:00
2023-08-22 19:08:45 +08:00
}
2023-10-19 15:00:19 +08:00
void OpenLeftChildUI(UILeftCharanterUIType uIChracterType)//async
2023-08-22 19:08:45 +08:00
{
switch (uIChracterType)
{
case UILeftCharanterUIType.EbaseAttri:
UIManager.Instance.OpenLoadedNormalUI(UINameConst.UI_Cultivate_ProAndInfo, mCurCharaData);
2025-01-21 16:38:05 +08:00
//proAndInfoWindow = await UIManager.Instance.CreateAndOpenWindow(UINameConst.UI_Cultivate_ProAndInfo, mCurCharaData) as UI_Cultivate_ProAndInfoController;
2023-08-22 19:08:45 +08:00
break;
case UILeftCharanterUIType.EDetailInfo:
UIManager.Instance.OpenLoadedNormalUI(UINameConst.UI_Cultivate_Detail, mCurCharaData);
2025-01-21 16:38:05 +08:00
//
//detailWindow = await UIManager.Instance.CreateAndOpenWindow(UINameConst.UI_Cultivate_Detail, mCurCharaData) as UI_Cultivate_DetailController;
2023-08-22 19:08:45 +08:00
break;
2023-10-19 15:00:19 +08:00
default:
DebugUtil.LogError("= =switch语句跳出默认开关");
throw new ArgumentOutOfRangeException(nameof(uIChracterType), uIChracterType, null);
2023-08-22 19:08:45 +08:00
}
}
void CloseLeftCurChildUI()
{
2025-01-21 16:38:05 +08:00
//switch (mCurLeftUICharacterType)
//{
// case UILeftCharanterUIType.EbaseAttri:
// proAndInfoWindow.Hide();
// //UIManager.Instance.CloseWindow(UINameConst.UI_Cultivate_ProAndInfo);
// break;
// case UILeftCharanterUIType.EDetailInfo:
// detailWindow.Hide();
// //UIManager.Instance.CloseWindow(UINameConst.UI_Cultivate_Detail);
// break;
//
//
// default:
// DebugUtil.LogError("= =switch语句跳出默认开关");
//
// throw new ArgumentOutOfRangeException();
//}
2023-08-22 19:08:45 +08:00
}
}