Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -275,7 +275,8 @@ _cTarget.DoFlashWhite(); } if (_sTarget.CurHP == 0) // 2018年8月28日 20:11:06 角色有可能具有死而复生的能力 这里不在血量为0的时候调用死亡逻辑 if (_sTarget.CurHP == 0 && !(_cTarget is GActorPlayerBase)) { _cTarget.ActorInfo.ResetHp((int)_sTarget.CurHP, (short)_sTarget.CurHPEx); _cTarget.Die(vNetData.ObjID); @@ -629,7 +630,8 @@ GAStaticDefine.PopHp(_attacker, _cTarget, _sTarget.AttackType, (int)_sTarget.HurtHP); } if (_sTarget.CurHP == 0) // 2018年8月28日 20:11:06 角色有可能具有死而复生的能力 这里不在血量为0的时候调用死亡逻辑 if (_sTarget.CurHP == 0 && !(_cTarget is GActorPlayerBase)) { _cTarget.ActorInfo.ResetHp((int)_sTarget.CurHP, (short)_sTarget.CurHPEx); _cTarget.Die(vNetData.ObjID); Fight/Actor/AI/HeroAI_Auto.cs
@@ -267,7 +267,7 @@ { return; } if (m_DecideSkill != null) { _skill = m_DecideSkill; Fight/Actor/AI/HeroAI_Base.cs
@@ -182,51 +182,61 @@ protected bool WaitForPickup() { if (Config.Instance.ContainKey<DungeonOpenTimeConfig>(PlayerDatas.Instance.baseData.MapID)) // 是副本 { var _dungeonOpenTime = Config.Instance.Get<DungeonOpenTimeConfig>(PlayerDatas.Instance.baseData.MapID); if (_dungeonOpenTime.GuardPick == 1)// 守护可以拾取 { var _singleModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip); if (_singleModel != null) { // 如果有守护 var _itemModel = _singleModel.GetItemModelByIndex((int)RoleEquipType.retSpiritAnimal); if (_itemModel != null // 有守护 && GeneralConfig.Instance.GuardianPickUpID.Contains(_itemModel.itemId))// 守护有拾取功能 { return false; } } } } else { var _singleModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip); if (_singleModel != null) { // 如果有守护 var _itemModel = _singleModel.GetItemModelByIndex((int)RoleEquipType.retSpiritAnimal); if (_itemModel != null // 有守护 && GeneralConfig.Instance.GuardianPickUpID.Contains(_itemModel.itemId))// 守护有拾取功能 { return false; } } } GA_Hero _hero = PlayerDatas.Instance.hero; DropItemManager.DropObject _obj = null; if (DropItemManager.HandupTryGetHeroItem(out _obj)) { _hero.StopRush(); Vector3 _targetPosition = _obj.dropItem.transform.position; float _chkDistSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _targetPosition); if (_chkDistSqrt > 0.5f) bool _needPickupSelf = true; // 有掉落物 // 是否是强制守护不能拾取的 if (_obj.ownerType != 7) { _hero.MoveToPosition(_targetPosition); if (Config.Instance.ContainKey<DungeonOpenTimeConfig>(PlayerDatas.Instance.baseData.MapID)) // 是副本 { var _dungeonOpenTime = Config.Instance.Get<DungeonOpenTimeConfig>(PlayerDatas.Instance.baseData.MapID); if (_dungeonOpenTime.GuardPick == 1)// 守护可以拾取 { var _singleModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip); if (_singleModel != null) { // 如果有守护 var _itemModel = _singleModel.GetItemModelByIndex((int)RoleEquipType.retSpiritAnimal); if (_itemModel != null // 有守护 && GeneralConfig.Instance.GuardianPickUpID.Contains(_itemModel.itemId))// 守护有拾取功能 { _needPickupSelf = false; } } } } else { var _singleModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip); if (_singleModel != null) { // 如果有守护 var _itemModel = _singleModel.GetItemModelByIndex((int)RoleEquipType.retSpiritAnimal); if (_itemModel != null // 有守护 && GeneralConfig.Instance.GuardianPickUpID.Contains(_itemModel.itemId))// 守护有拾取功能 { _needPickupSelf = false; } } } } return true; if (_needPickupSelf) { _hero.StopRush(); Vector3 _targetPosition = _obj.dropItem.transform.position; float _chkDistSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _targetPosition); if (_chkDistSqrt > 0.5f) { _hero.MoveToPosition(_targetPosition); } return true; } } return false; } Fight/Stage/Dungeon/DropItemManager.cs
@@ -383,6 +383,13 @@ return false; } } else if (dropObject.ownerType == 7) { if (dropObject.ownerID != PlayerDatas.Instance.baseData.Family) { return false; } } ItemConfig _itemModel = Config.Instance.Get<ItemConfig>(dropObject.itemID); @@ -583,6 +590,13 @@ { return false; } // 如果是仙盟归属的, 设定为守护不拾取 if (_item.ownerType == 7) { return false; } return CheckCanPickUp(_item); } #endregion System/KnapSack/Logic/ItemTipsModel.cs
@@ -18,7 +18,7 @@ public Dictionary<int, List<int>> equipLegendAttrTypeDict { get; private set; } public Dictionary<int, Dictionary<int, string>> wingsLegendAttrColorDict { get; private set; } private Dictionary<int, int> itemComposeTypeDict; public int[] NotComposeIds { get; private set;} public Dictionary<string, Dictionary<LegendAttrType, int>> legendAttrCntPreviewDict { get; private set; } // key 品质+星级 value 属性条目数 public Dictionary<int, Dictionary<LegendAttrType, List<int>>> legendAttrIDPreviewDict { get; private set; } // key 装备位 value 属性类型,属性ID public Dictionary<int, Dictionary<int, int>> legendAttrColorValuePreviewDict { get; private set; } // key 属性ID value 装备品质,属性数值 @@ -118,7 +118,7 @@ FuncConfigConfig itemComposeTypeFunc = Config.Instance.Get<FuncConfigConfig>("BagCompound"); itemComposeTypeDict = ConfigParse.GetDic<int, int>(itemComposeTypeFunc.Numerical1); NotComposeIds = ConfigParse.GetMultipleStr<int>(itemComposeTypeFunc.Numerical2); FuncConfigConfig legendAttrCountPreview = Config.Instance.Get<FuncConfigConfig>("LegendAttrCountPreview"); JsonData legendAttrCntData = JsonMapper.ToObject(legendAttrCountPreview.Numerical1); @@ -621,7 +621,7 @@ if (!isOverdue) { if (itemComposeTypeDict.ContainsKey(attrData.itemConfig.Type)) if (itemComposeTypeDict.ContainsKey(attrData.itemConfig.Type) && !NotComposeIds.Contains(attrData.itemId)) { attrData.SetTipsFuncBtn(ItemWinBtnType.compose, (ItemWinBtnType, ItemAttrData) => { bool isUnlock = ModelCenter.Instance.GetModel<ComposeWinModel>().CheckComposeItemById(attrData.itemId); System/MainInterfacePanel/FlyingShoesTask.cs
@@ -439,7 +439,18 @@ { m_DeliveryButton.gameObject.SetActive(false); } //----------------特殊采集魔团任务的传送云处理 if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务 { if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv) { m_DeliveryButton.gameObject.SetActive(true); } else { m_DeliveryButton.gameObject.SetActive(false); } } m_ContentText.raycastTarget = false; if (taskmodel._DicTaskInformation.ContainsKey(TaskID)) System/MainInterfacePanel/SideMission.cs
@@ -122,23 +122,15 @@ else { int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉 int GoldPaper = (int)UIHelper.GetMoneyCnt(2);//绑玉 string strNull = string.Empty; int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//所需金额 if (GoldPaper >= needNumber) { strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber); } else { strNull = string.Format(Language.Get("PassiveSkillTask4"), needNumber, GoldPaper, needNumber - GoldPaper); } strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber); ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) => { if (isOk) { if (Gold + GoldPaper >= needNumber) if (Gold >= needNumber) { taskmodel.CompletionOfTask(TaskIdNow); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); @@ -154,7 +146,6 @@ } } }); } return; } System/OpenServerActivity/OSGiftBehaviour.cs
@@ -148,7 +148,7 @@ switch ((StoreFunc)_storeConfig.ShopType) { case StoreFunc.OSTimeLimitGift: if (TimeUtility.CreateDays > timeLimitGiftModel.openDays) if (timeLimitGiftModel.currentDay > timeLimitGiftModel.openDays) { SysNotifyMgr.Instance.ShowTip("ActiveOutTime"); return; System/Vip/FairyJadeInvestmentWin.cs
@@ -8,8 +8,10 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; //仙玉投资 namespace Snxxz.UI { namespace Snxxz.UI { public class FairyJadeInvestmentWin : Window { @@ -20,7 +22,7 @@ [SerializeField] ScrollerController m_ScrollerController; [SerializeField] Button m_InvestmentButton;//投资按钮 [SerializeField] GameObject m_MaxInverstment;//最大投资上限 [SerializeField] Button m_RealizedInvestmentButton;//追加投资 [SerializeField] Button m_RealizedInvestmentButton;//追加投资 [SerializeField] Button m_SelectButton;//额度选择 [SerializeField] Text m_TextNumber; @@ -31,10 +33,28 @@ [SerializeField] Text m_JadeText;//所需投资仙玉 [SerializeField] Image m_Image_AD;//投资图片 [SerializeField] Image m_Image1; [SerializeField] Image m_Image2; [SerializeField] Image m_Image3; public static event Action FairyJadeInvestmentRedPointEvent; #region Built-in private List<int> GearPositionList = new List<int>(); private string[] IconList1 = new string[4]; private string[] IconList2 = new string[4]; private string[] IconList3 = new string[4]; protected override void BindController() { var JadeInves = Config.Instance.Get<FuncConfigConfig>("JadeInvestIconKey"); int[] GearPosition = ConfigParse.GetMultipleStr<int>(JadeInves.Numerical1); GearPositionList.Clear(); for (int i = 0; i < GearPosition.Length; i++) { GearPositionList.Add(GearPosition[i]); } IconList1 = ConfigParse.GetMultipleStr(JadeInves.Numerical2); IconList2 = ConfigParse.GetMultipleStr(JadeInves.Numerical3); IconList3 = ConfigParse.GetMultipleStr(JadeInves.Numerical4); } protected override void AddListeners() @@ -88,9 +108,9 @@ m_JadeText.gameObject.SetActive(true); m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), fairyJadeInvestmentModel.SelectNumber - fairyJadeInvestmentModel.InvestGold); } IsInvestment(); IsInvestment(); GetMoney(); SetIconKeyImage(); m_TextNumber.text = fairyJadeInvestmentModel.SelectNumber.ToString(); PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418) FairyJadeInvestmentModel.FairyJadeInfoSeriorsUpdate += FairyJadeInfoSeriorsUpdate; @@ -100,9 +120,10 @@ m_ScrollerController.JumpIndex(fairyJadeInvestmentModel.JumpInedx); } protected override void OnAfterOpen() { if (fairyJadeInvestmentModel.redPointStre1.state==RedPointState.Simple) if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple) { fairyJadeInvestmentModel.IsRedpoint = false; if (FairyJadeInvestmentRedPointEvent != null) @@ -123,6 +144,7 @@ private void SelectNumberRefresh() { m_TextNumber.text = fairyJadeInvestmentModel.SelectNumber.ToString(); SetIconKeyImage(); if (fairyJadeInvestmentModel.InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_JadeText.gameObject.SetActive(false); @@ -196,7 +218,7 @@ if (fairyJadeInvestmentModel.InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { m_MaxInverstment.SetActive(false); if (fairyJadeInvestmentModel.InvestGold > 0) { m_Image_AD.SetSprite("XT_VIP_106"); @@ -216,7 +238,7 @@ m_MaxInverstment.SetActive(true); m_InvestmentButton.gameObject.SetActive(false); m_RealizedInvestmentButton.gameObject.SetActive(false); } } } private void InvestmentButton()//仙玉投资 @@ -228,13 +250,13 @@ } if (fairyJadeInvestmentModel.InvestGold > 0) { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), fairyJadeInvestmentModel.SelectNumber- fairyJadeInvestmentModel.InvestGold), (bool isOk) => { if (isOk) { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), fairyJadeInvestmentModel.SelectNumber - fairyJadeInvestmentModel.InvestGold), (bool isOk) => { if (isOk) { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); } else { @@ -244,8 +266,8 @@ { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); } }); } } private void RealizedInvestment_Button()//追加投资按钮 @@ -276,8 +298,8 @@ private void ConsumeFairyJade(int fairyJade) { int getFairyJade = (int)UIHelper.GetMoneyCnt(1); if (getFairyJade>= (fairyJade- fairyJadeInvestmentModel.InvestGold)) int getFairyJade = (int)UIHelper.GetMoneyCnt(1); if (getFairyJade >= (fairyJade - fairyJadeInvestmentModel.InvestGold)) { fairyJadeInvestmentModel.InvestmentMonthlyInvestment(3, fairyJade); } @@ -289,7 +311,7 @@ private void GetMoney() { m_FairyJadeText.text = UIHelper.GetMoneyCnt(1).ToString(); m_TieTheJadeText.text= UIHelper.GetMoneyCnt(2).ToString(); m_TieTheJadeText.text = UIHelper.GetMoneyCnt(2).ToString(); } @@ -312,6 +334,26 @@ break; } } private void SetIconKeyImage() { var money = fairyJadeInvestmentModel.SelectNumber; if (fairyJadeInvestmentModel.InvestmentAmountDic.ContainsKey(money)) { var type = fairyJadeInvestmentModel.InvestmentAmountDic[money]; if (GearPositionList.Contains(type)) { int Inedx = GearPositionList.IndexOf(type); m_Image1.SetSprite(IconList1[Inedx]); m_Image1.SetNativeSize(); m_Image2.SetSprite(IconList2[Inedx]); m_Image2.SetNativeSize(); m_Image3.SetSprite(IconList3[Inedx]); m_Image3.SetNativeSize(); } } } } } System/Vip/OSTimeLimitGiftModel.cs
@@ -31,7 +31,7 @@ { get { return TimeUtility.CreateDays <= openDays && FuncOpen.Instance.IsFuncOpen(132); return currentDay <= openDays && FuncOpen.Instance.IsFuncOpen(132); } } @@ -40,6 +40,14 @@ get { return redpoint.state == RedPointState.Simple; } } public int currentDay { get { return TimeUtility.OpenDay + 1; } } @@ -66,19 +74,22 @@ redpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, MainRedDot.REDPOINT_OPENSERVER * 100 + 3); TimeUtility.OnServerOpenDayRefresh += UpdateRedpoint; TimeUtility.OnCreateRoleTimeRefresh += OnCreateRoleTimeRefresh; TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh; storeModel.RefreshBuyShopLimitEvent += UpdateRedpoint; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; OpenServerActivityCenter.Instance.Register(3, this); } private void OnServerOpenDayRefresh() { OnCreateRoleTimeRefresh(); } public override void UnInit() { TimeUtility.OnServerOpenDayRefresh -= UpdateRedpoint; TimeUtility.OnCreateRoleTimeRefresh -= OnCreateRoleTimeRefresh; TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh; storeModel.RefreshBuyShopLimitEvent -= UpdateRedpoint; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; } public void OnBeforePlayerDataInitialize() @@ -93,9 +104,9 @@ private void OnCreateRoleTimeRefresh() { if (TimeUtility.CreateDays <= openDays) if (currentDay <= openDays) { m_OverdueTime = TimeUtility.ServerNow.AddDays(openDays - TimeUtility.CreateDays + 1); m_OverdueTime = TimeUtility.ServerNow.AddDays(openDays - currentDay + 1); m_OverdueTime = new DateTime(m_OverdueTime.Year, m_OverdueTime.Month, m_OverdueTime.Day); } UpdateRedpoint(); @@ -130,13 +141,13 @@ void UpdateRedpoint() { redpoint.state = RedPointState.None; if (TimeUtility.CreateDays > openDays || !FuncOpen.Instance.IsFuncOpen(132) if (currentDay > openDays || !FuncOpen.Instance.IsFuncOpen(132) || DayRemind.Instance.GetDayRemind(DayRemind.OSTIMEGIFT_REDPOINT)) { return; } List<StoreConfig> _list; var day = Mathf.Max(1, TimeUtility.CreateDays); var day = Mathf.Max(1, currentDay); day = Mathf.Min(day, openDays); if (TryGetGifts(day, out _list)) { System/Vip/OSTimeLimitGiftWin.cs
@@ -97,7 +97,7 @@ var t = model.overdueTime - TimeUtility.ServerNow; m_CoolDown.text = StringUtility.Contact(Language.Get("OSActivityCoolDown"), TimeUtility.SecondsToDHMSCHS((int)t.TotalSeconds)); if (TimeUtility.CreateDays > model.openDays) if (model.currentDay > model.openDays) { IsOutOffTime = true; m_CoolDown.color = UIHelper.GetUIColor(TextColType.NavyYellow); @@ -112,7 +112,7 @@ private void DisplayItems() { List<StoreConfig> _list; var day = Mathf.Max(1, TimeUtility.CreateDays); var day = Mathf.Max(1, model.currentDay); day = Mathf.Min(day, model.openDays); if (model.TryGetGifts(day, out _list)) { System/Welfare/SignInWin.cs
@@ -46,17 +46,21 @@ protected override void OnPreOpen() { InitSignIn(); //signInCtrl.JumpIndex(0); InitCtnSign(); ctnSignCtrl.mScrollRect.verticalNormalizedPosition = 1; signInCtrl.mScrollRect.verticalNormalizedPosition = 1; model.OnSignRefresh += OnSignRefresh; } protected override void OnActived() { base.OnActived(); JumpToTodaySign(); } protected override void OnAfterOpen() { { HandleAchievement(); } @@ -93,10 +97,6 @@ SysNotifyMgr.Instance.ShowTip("Achievement_16"); AchievementGoto.achievementType = 0; } } else { signInCtrl.JumpIndex(0); } signInCtrl.m_Scorller.RefreshActiveCellViews(); } @@ -137,6 +137,13 @@ ctnSignCtrl.m_Scorller.RefreshActiveCellViews(); } } private void JumpToTodaySign() { var _num = Mathf.Max(0, model.signNum); var _line = _num / 5; signInCtrl.JumpIndex(_line); } } } UI/Common/UI3DShowHero.cs
@@ -49,25 +49,33 @@ if (weaponId != 0) { prefab = InstanceResourcesLoader.LoadModelRes(weaponId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(weaponModel); if (prefab) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(weaponModel); } weaponModel = null; } if (secondaryId != 0) { prefab = InstanceResourcesLoader.LoadModelRes(secondaryId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(secondaryModel); secondaryModel.SetActive(true); if (prefab) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(secondaryModel); } secondaryModel = null; } if (wingsId != 0) { prefab = InstanceResourcesLoader.LoadModelRes(wingsId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(wingsModel); if (prefab) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(wingsModel); } wingsModel = null; wingsAnimator = null; } @@ -75,8 +83,11 @@ if (clothesId != 0) { prefab = InstanceResourcesLoader.LoadModelRes(clothesId); pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(clothesModel); if (prefab) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); pool.Release(clothesModel); } clothesModel = null; if (clothesAnimator) { @@ -102,7 +113,10 @@ if (clothesModel != null) { var animator = clothesModel.GetComponent<Animator>(); animator.Play(GAStaticDefine.State_IdleHash); if (animator) { animator.Play(GAStaticDefine.State_IdleHash); } } } @@ -111,13 +125,19 @@ if (clothesModel != null) { var animator = clothesModel.GetComponent<Animator>(); animator.Play(GAStaticDefine.State_SitDown); if (animator) { animator.Play(GAStaticDefine.State_SitDown); } } if (weaponModel) { GameObject prefab = InstanceResourcesLoader.LoadModelRes(weaponId); GameObjectPoolManager.Instance.ReleaseGameObject(prefab, weaponModel); if (prefab) { GameObjectPoolManager.Instance.ReleaseGameObject(prefab, weaponModel); } weaponModel = null; } @@ -162,52 +182,57 @@ LoadClothes(newClothes); clothesId = newClothes; if (weaponModel) if (clothesModel) { var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WeaponBindBoneName); weaponModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } if (weaponModel) { var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WeaponBindBoneName); weaponModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } if (wingsModel) { var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WingBindBoneName); wingsModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } if (wingsModel) { var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WingBindBoneName); wingsModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } if (secondaryModel) { var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[job - 1]); wingsModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } if (secondaryModel) { var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[job - 1]); wingsModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } LoadClothesEffect(itemID, suitID); LoadClothesEffect(itemID, suitID); } } private void LoadClothes(int resID) { var prefab = InstanceResourcesLoader.LoadModelRes(resID); var pool = GameObjectPoolManager.Instance.RequestPool(prefab); clothesModel = pool.Request(); LayerUtility.SetLayer(clothesModel, LayerUtility.Player, false); var skinnedMeshRenderer = clothesModel.GetComponentInChildren<SkinnedMeshRenderer>(true); LayerUtility.SetLayer(skinnedMeshRenderer.gameObject, LayerUtility.Player, false); clothesModel.SetActive(true); clothesModel.transform.SetParentEx(showPoint, Vector3.zero, Quaternion.identity, Vector3.one); clothesAnimator = clothesModel.GetComponent<Animator>(); if (clothesAnimator == null) if (prefab) { DebugEx.LogErrorFormat("角色资源: {0} 没有动画控制器", resID); } var pool = GameObjectPoolManager.Instance.RequestPool(prefab); clothesModel = pool.Request(); // 动画状态机修改 if (clothesAnimator) { cacheClothedAC = clothesAnimator.runtimeAnimatorController; RuntimeAnimatorController _controller = AnimatorControllerLoader.Load(AnimatorControllerLoader.controllerUISuffix, resID); clothesAnimator.runtimeAnimatorController = _controller; clothesAnimator.enabled = true; LayerUtility.SetLayer(clothesModel, LayerUtility.Player, false); var skinnedMeshRenderer = clothesModel.GetComponentInChildren<SkinnedMeshRenderer>(true); LayerUtility.SetLayer(skinnedMeshRenderer.gameObject, LayerUtility.Player, false); clothesModel.SetActive(true); clothesModel.transform.SetParentEx(showPoint, Vector3.zero, Quaternion.identity, Vector3.one); clothesAnimator = clothesModel.GetComponent<Animator>(); // 动画状态机修改 if (clothesAnimator) { cacheClothedAC = clothesAnimator.runtimeAnimatorController; RuntimeAnimatorController _controller = AnimatorControllerLoader.Load(AnimatorControllerLoader.controllerUISuffix, resID); clothesAnimator.runtimeAnimatorController = _controller; clothesAnimator.enabled = true; } else { DebugEx.LogErrorFormat("角色资源: {0} 没有动画控制器", resID); } } } @@ -274,12 +299,16 @@ prefab = InstanceResourcesLoader.LoadModelRes(newWeapon); } pool = GameObjectPoolManager.Instance.RequestPool(prefab); weaponModel = pool.Request(); if (prefab) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); weaponModel = pool.Request(); LayerUtility.SetLayer(weaponModel, LayerUtility.Player, false); var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WeaponBindBoneName); weaponModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); LayerUtility.SetLayer(weaponModel, LayerUtility.Player, false); var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WeaponBindBoneName); weaponModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } weaponId = newWeapon; } @@ -323,11 +352,15 @@ newSecondary = config.BaseEquip[2]; prefab = InstanceResourcesLoader.LoadModelRes(newSecondary); } pool = GameObjectPoolManager.Instance.RequestPool(prefab); secondaryModel = pool.Request(); var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[job - 1]); secondaryModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); if (prefab) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); secondaryModel = pool.Request(); var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.SecondaryBindBoneName[job - 1]); secondaryModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); } } secondaryId = newSecondary; @@ -371,26 +404,29 @@ prefab = InstanceResourcesLoader.LoadModelRes(newWings); } pool = GameObjectPoolManager.Instance.RequestPool(prefab); wingsModel = pool.Request(); wingsModel.layer = LayerUtility.Player; SkinnedMeshRenderer _renderer = wingsModel.GetComponentInChildren<SkinnedMeshRenderer>(); if (_renderer) if (prefab) { _renderer.gameObject.layer = LayerUtility.Player; } pool = GameObjectPoolManager.Instance.RequestPool(prefab); wingsModel = pool.Request(); var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WingBindBoneName); wingsModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); wingsModel.layer = LayerUtility.Player; SkinnedMeshRenderer _renderer = wingsModel.GetComponentInChildren<SkinnedMeshRenderer>(); if (_renderer) { _renderer.gameObject.layer = LayerUtility.Player; } wingsAnimator = wingsModel.GetComponent<Animator>(); if (wingsAnimator == null) { DebugEx.LogErrorFormat("翅膀资源{0}没有动画控制器", itemID); var parent = clothesModel.transform.GetChildTransformDeeply(GAStaticDefine.WingBindBoneName); wingsModel.transform.SetParentEx(parent, Vector3.zero, Quaternion.identity, Vector3.one); wingsAnimator = wingsModel.GetComponent<Animator>(); if (wingsAnimator == null) { DebugEx.LogErrorFormat("翅膀资源{0}没有动画控制器", itemID); } wingsAnimator.enabled = true; wingsAnimator.Play("UI_Idle", 0); } wingsAnimator.enabled = true; wingsAnimator.Play("UI_Idle", 0); } wingsId = newWings; UI/EnhancedScroller/EnhancedScroller.cs
@@ -808,7 +808,7 @@ * 所以可以通过postion和可滑动区域大小的比值来定义滑动条滑动到了哪个位置 */ if (NumberOfCells == 0) return 0;//如果scroll没有子物体直接返回 if (NumberOfCells == 0 || _cellViewOffsetArray.Count == 0) return 0;//如果scroll没有子物体直接返回 if (cellViewIndex <= 0 && insertPosition == CellViewPositionEnum.Before) {