private void OnLevelChange(xc.ClientEventBaseArgs args) { //************************************ // 场景切换清掉面板從新打開必要面板 //************************************ List <string> removeList = new List <string>(); foreach (var kv in mWindows) { if (kv.Value.WindowType != UIType.Loading) { if (!kv.Value.IsGlobal) { if (kv.Value.mUIObject != null) { kv.Value.Destroy(); DestroyWindowGameObject((GameObject)kv.Value.mUIObject); removeList.Add(kv.Key); } } else { kv.Value.Show(); } } } for (int i = 0; i < removeList.Count; i++) { if (mWindows.ContainsKey(removeList[i])) { mWindows.Remove(removeList[i]); } } }
void OnActorHpChange(xc.ClientEventBaseArgs msg) { if (mUIObject == null) { return; } if (mTargetMono == null || mTargetMono.BindActor == null) { return; } var actor = (Actor)msg.GetArg(); if (actor == null) { GameDebug.LogError("actor == null"); return; } var targetActor = (Actor)mTargetMono.BindActor; if (targetActor.UID == actor.UID) { SetHpBarPanel(); } }
void OnActorHpChange(xc.ClientEventBaseArgs args) { if (mActor == null || !mActor.IsAlive) { return; } var myActor = (Actor)mActor.Target; var actor = (Actor)args.GetArg(); if (actor == null) { GameDebug.LogError("actor == null"); return; } if (myActor.UID == actor.UID) { if (myActor.FullLife > 0) { mForegroundBar.value = (float)((double)myActor.CurLife / (double)myActor.FullLife); } else { mForegroundBar.value = 0; } mSliderHPValue = mLastHPValue; mLastHPValue = myActor.CurLife; mProgressSliderTime = 0; } }
public void PostEvent(EventType eventID, ClientEventBaseArgs arg) { Message msg = new Message(); msg.e = eventID; msg.arg = arg; mMsgLst.AddLast(msg); }
public void FireEvent(EventType eventID, ClientEventBaseArgs arg) { List <ClientEventFunc> funcs; if (mEventHandlers.TryGetValue(eventID, out funcs)) { foreach (ClientEventFunc func in funcs) { if (func != null) { func(arg); } } } }
/// <summary> /// 技能装配信息发生改变 /// </summary> void OnSkillUpdate(xc.ClientEventBaseArgs data) { if (mCacheTrans == null) { return; } uint skillId = SkillManager.GetInstance().GetFitSkillId(mFuryHole); if (mSkillIdx != skillId) { // 装配的技能ID更换的时候,触发特效 if (mSkillIdx != 0) { if (mChangeEffect != null) { mChangeEffect.SetActive(false); mChangeEffect.SetActive(true); } } mSkillIdx = skillId; } mBasicSkillInfo = DBManager.Instance.GetDB <DBDataAllSkill>().GetOneAllSkillInfo_byActiveSkillId(skillId); mSkillInfo = DBSkillSev.Instance.GetSkillInfo(skillId); // 设置技能图标 if (mBasicSkillInfo != null && mSpriteList != null) { var sprite = mSpriteList.LoadSprite(mBasicSkillInfo.Icon); if (sprite != null) { mSkillImage.color = Color.white; mSkillImage.sprite = sprite; return; } } // 技能未装配,不显示技能对应图片 mSkillImage.color = Color.clear; }
/// <summary> /// 面板资源完成的回调 /// </summary> /// <param name="args"></param> private void OnResourceLoadDone(xc.ClientEventBaseArgs args) { if (args.Arg == null) { return; } UIBaseWindow baseWin = (UIBaseWindow)args.Arg; //移除加载窗口 loadingWindows.Remove(baseWin.mWndName); //如果资源加载发现字典没有改面板表面是野窗口 if (mWindows.ContainsValue(baseWin) == false) { // 如果在字典中找不到,则说明之前进行了销毁操作,不需要再次调用Destroy @fix by raorui //baseWin.Destroy(); DestroyWindowGameObject((GameObject)baseWin.mUIObject); return; } //断线重连中直接销毁窗口 if (NetReconnect.Instance.IsReconnect && baseWin.mWndName != "UIAutoConnectWindow") { DestroyWindowGameObject((GameObject)baseWin.mUIObject); if (needCloseWindowsAfterResLoad.Contains(baseWin.mWndName)) { needCloseWindowsAfterResLoad.Remove(baseWin.mWndName); } if (mWindows.ContainsKey(baseWin.mWndName)) { mWindows.Remove(baseWin.mWndName); } return; } //************************************ // 资源加载完开始初始化数据调用InitData 跟show同时调整Zorder //************************************ //AddZOrder(baseWin); //var go = baseWin.mUIObject; //go.SetActive(true); baseWin.InitData(); if (ModalWindow != null && ModalWindow.mWndName != baseWin.mWndName) { return; } if (baseWin.IsModal)//模態窗口衹能唯一如果未銷毀不會打開新的模態 { ModalWindow = baseWin; } baseWin.Show(); for (int i = 0; i < needCloseWindowsAfterResLoad.Count; i++) { if (baseWin.mWndName == needCloseWindowsAfterResLoad[i]) { needCloseWindowsAfterResLoad.RemoveAt(i); CloseWindow(baseWin.mWndName); return; } } }
/// <summary> /// 技能装配信息发生改变 /// </summary> void OnSkillUpdate(xc.ClientEventBaseArgs data) { if (mCacheTrans == null) { return; } uint skillId = SkillManager.GetInstance().GetFitSkillId(mFitPos); mSkillIdx = skillId; mBasicSkillInfo = DBManager.Instance.GetDB <DBDataAllSkill>().GetOneAllSkillInfo_byActiveSkillId(skillId); mSkillInfo = DBSkillSev.Instance.GetSkillInfo(skillId); DBSkillSev skill_db = DBManager.GetInstance().GetDB <DBSkillSev>(); mHasCastingReadyStage = skill_db.HasCastingReadyStage(skillId); // 设置技能图标 if (SkillHoleManager.Instance.IsHoleOpen(mFitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(mFitPos)) { mSkillImage.color = Color.clear; } else { if (skillId != 0)// 设置技能图标 { if (mBasicSkillInfo != null) { if (mSpriteList != null) { string icon_str = mBasicSkillInfo.Icon; if (mFitPos == (uint)DBCommandList.OPFlag.OP_A) //普攻 { var localPlayer = Game.Instance.GetLocalPlayer(); if (localPlayer != null && localPlayer.IsShapeShift)// 变身状态下的图标需要特殊处理 { icon_str = mBasicSkillInfo.Icon; if (string.IsNullOrEmpty(icon_str)) { VocationInfo info = DBVocationInfo.Instance.GetVocationInfo(Game.Instance.LocalPlayerVocation); if (info != null && string.IsNullOrEmpty(info.common_skill_icon_main) == false) { icon_str = info.common_skill_icon_main; } } } else { VocationInfo info = DBVocationInfo.Instance.GetVocationInfo(Game.Instance.LocalPlayerVocation); if (info != null && string.IsNullOrEmpty(info.common_skill_icon_main) == false) { icon_str = info.common_skill_icon_main; } } } Sprite sprite = mSpriteList.LoadSprite(icon_str); if (sprite != null) { mSkillImage.color = Color.white; mSkillImage.sprite = sprite; } else { mSkillImage.color = Color.clear; } } else { mSkillImage.color = Color.clear; } } else { mSkillImage.color = Color.clear; } } else// 技能未装配,不显示技能对应图片 { mSkillImage.color = Color.clear; } } }