| Core/GameEngine/Model/ConfigManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/BlastFurnace/GetEquipPathWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/Logic/PackModelInterface.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/Logic/PlayerPackModels.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/BagWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/CommonItemBaisc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/EquipPlaceCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/EquipPlaceCell.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/GetWingsPathTips.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/GetWingsPathTips.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/RoleEquipWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/WingsWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/WindowBase/Window.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utility/EnumHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/ConfigManager.cs
@@ -44,7 +44,7 @@ public IEnumerator Co_LoadConfigs() { AddAsyncTask<LoginSeverListConfig>(); StartSyncTask<LoginSeverListConfig>(AssetSource.refdataFromEditor ? AssetPath.ResourceOut : AssetPath.External); AddAsyncTask<IconConfig>(); AddAsyncTask<ItemConfig>(); AddAsyncTask<SkillConfig>(); System/BlastFurnace/GetEquipPathWin.cs
@@ -454,6 +454,9 @@ case 12: legendCntPreview.text = itemTipsModel.GetEquipLegendAttrCntPreview(itemAttrData); break; case 11: legendCntPreview.text = itemTipsModel.GetWingsLegendAttrCntPreview(itemAttrData); break; case 101: case 102: case 103: @@ -472,10 +475,28 @@ private void SetGemAttrUI() { if (itemAttrData.itemConfig.LV < itemTipsModel.gemOpenLvs[0]) switch ((RoleEquipType)itemAttrData.itemConfig.EquipPlace) { gemAttr.SetActive(false); return; case RoleEquipType.retWeapon: case RoleEquipType.retWeapon2: case RoleEquipType.retHat: case RoleEquipType.retClothes: case RoleEquipType.retBelt: case RoleEquipType.retTrousers: case RoleEquipType.retShoes: case RoleEquipType.retNeck: case RoleEquipType.retFairyCan: case RoleEquipType.retFairyCan2: case RoleEquipType.retSpiritAnimal: if (itemAttrData.itemConfig.LV < itemTipsModel.gemOpenLvs[0]) { gemAttr.SetActive(false); return; } break; case RoleEquipType.retWing: gemAttr.SetActive(false); return; } gemAttr.SetActive(true); gemTitleText.text = Language.Get("EquipWin_GemPropObj_Text_1"); System/KnapSack/Logic/PackModelInterface.cs
@@ -1363,6 +1363,36 @@ return modellist; } /// <summary> /// 获取装备评分最高可提升战力的装备 /// </summary> /// <param name="_places"></param> /// <returns></returns> public string GetHighestScoreEquipByPlace(int equipPlace) { var itemPackage = playerPack.GetSinglePackModel(PackType.rptItem); var allItems = itemPackage.GetPackModelIndexDict(); ItemModel putModel = playerPack.GetItemModelByIndex(PackType.rptEquip,equipPlace); equipPlace = (equipPlace == 9 || equipPlace == 10) ? 9 : equipPlace; var guid = string.Empty; var equips = new List<string>(); var score = putModel == null ? 0 : putModel.equipScore; var job = PlayerDatas.Instance.baseData.Job; foreach (var item in allItems.Values) { if(item.chinItemModel.EquipPlace == equipPlace) { if (!IsOverdue(item.itemInfo.ItemGUID, item.itemId) && (item.chinItemModel.JobLimit == 0 || (item.chinItemModel.JobLimit / 100) == job) && item.equipScore > score) { guid = item.itemInfo.ItemGUID; score = item.equipScore; } } } return guid; } #endregion #region 背包整理后好的同类型最好的装备 @@ -1374,44 +1404,20 @@ if (!IsCanPutOn(itemModel)) return; int equipPlace = itemModel.chinItemModel.EquipPlace; SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptEquip); ItemModel putOnModel = null; if (singlePack != null) { putOnModel = singlePack.GetItemModelByIndex(equipPlace); } if (!itemModelDict.ContainsKey(equipPlace)) { Dictionary<int, ItemModel> dict = new Dictionary<int, ItemModel>(); if (putOnModel == null) if (IsFightUp(itemModel.itemId,itemModel.equipScore) == 1) { dict.Add(itemModel.itemInfo.ItemPlace, itemModel); itemModelDict.Add(equipPlace, dict); } else { if (itemModel.equipScore > putOnModel.equipScore) { dict.Add(itemModel.itemInfo.ItemPlace, itemModel); itemModelDict.Add(equipPlace, dict); } } } else { if(putOnModel == null) if (IsFightUp(itemModel.itemId, itemModel.equipScore) == 1) { if (!itemModelDict[equipPlace].ContainsKey(itemModel.itemInfo.ItemPlace)) { itemModelDict[equipPlace].Add(itemModel.itemInfo.ItemPlace, itemModel); } } else { if (itemModel.equipScore > putOnModel.equipScore) { itemModelDict[equipPlace].Add(itemModel.itemInfo.ItemPlace, itemModel); } itemModelDict[equipPlace].Add(itemModel.itemInfo.ItemPlace, itemModel); } } @@ -1444,65 +1450,17 @@ } } return CheckPutOnLimit(itemModel.itemId); return CheckPutOnRealm(itemModel.chinItemModel); } private bool CheckPutOnLimit(int itemId) private bool CheckPutOnRealm(ItemConfig config) { int playerLv = PlayerDatas.Instance.baseData.LV; ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemId); if (itemConfig == null) return false; if (itemConfig.EquipPlace != (int)RoleEquipType.retWing) var _realmLv = config.RealmLimit; if (PlayerDatas.Instance.baseData.realmLevel < _realmLv) { if (itemConfig.UseLV > playerLv) return false; float sumOffsetPoint = 0; float offset = 0; if (itemConfig.LimitSTR != 0) { offset = itemConfig.LimitSTR - UIHelper.GetPropertyMapPlayerData(AttrEnum.POWER); sumOffsetPoint += offset; } if (itemConfig.LimitPHY != 0) { offset = itemConfig.LimitPHY - UIHelper.GetPropertyMapPlayerData(AttrEnum.AGILITY); sumOffsetPoint += offset; } if (itemConfig.LimitPNE != 0) { offset = itemConfig.LimitPNE - UIHelper.GetPropertyMapPlayerData(AttrEnum.MENTALITY); sumOffsetPoint += offset; } if (sumOffsetPoint <= PlayerDatas.Instance.baseData.FreePoint) { if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AddPoint)) { return true; } } return false; } else { var _realmLv = 1; GeneralDefine.wingEquipLimits.TryGetValue(itemId, out _realmLv); var needRealmConfig = Config.Instance.Get<RealmConfig>(_realmLv); var curRealmConfig = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel); if (PlayerDatas.Instance.baseData.realmLevel < _realmLv) { return false; } else { return true; } } return true; } #endregion @@ -1575,7 +1533,7 @@ ItemConfig chinItemModel = Config.Instance.Get<ItemConfig>(_itemID); if (chinItemModel != null) { if (chinItemModel.Type < 101 || chinItemModel.Type >= 110) return 0; if (chinItemModel.EquipPlace < 1 || chinItemModel.EquipPlace > 12) return 0; ItemModel model = playerPack.GetItemModelByIndex(PackType.rptEquip,chinItemModel.EquipPlace); if (chinItemModel.EquipPlace == (int)RoleEquipType.retFairyCan) { System/KnapSack/Logic/PlayerPackModels.cs
@@ -15,16 +15,18 @@ public Dictionary<int, int[]> DungeonToDrugDict { get; private set; } //key 副本ID,value丹药ID列表 public List<AttrFruitConfig> makeDruglist { get; private set; } public Dictionary<int, Dictionary<int, int>> decomposeAttrDict = new Dictionary<int, Dictionary<int, int>>(); public static string StrengthAttrShift_RecordKey = "StrengthAttrShift"; public static string StrengthAttrShift_RecordKey = ""; public const string RecordKnapsackTitle = "RecordKnapsackTitle"; public string RoleEquipLocalSave = ""; public int MaxBagGridCnt { get; private set; } public int InitBagGridCnt { get; private set; } public int MaxDepotGridCnt { get; private set; } public int InitDepotGridCnt { get; private set; } BlastFurnaceModel FurnaceModel { get { return ModelCenter.Instance.GetModel<BlastFurnaceModel>(); } } public List<int> LocalSavePlaceArray { get; private set;} public override void Init() { ParseConfig(); List<DungeonOpenTimeConfig> dungeonlist = Config.Instance.GetAllValues<DungeonOpenTimeConfig>(); if (dungeonlist != null) { @@ -80,9 +82,12 @@ InitBagGridCnt = int.Parse(Config.Instance.Get<FuncConfigConfig>("InitBagCellCount").Numerical1); MaxBagGridCnt = int.Parse(Config.Instance.Get<FuncConfigConfig>("MaxBagCellCount").Numerical1); MaxDepotGridCnt = int.Parse(Config.Instance.Get<FuncConfigConfig>("MaxDepotCellCount").Numerical1); SetRoleEquipRedpoint(); } public void OnBeforePlayerDataInitialize() { PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerLv; LocalSave.DeleteKey(RecordKnapsackTitle); cacheMapId = 0; playerPackDict.Clear(); @@ -111,7 +116,19 @@ PackSendQuestMgr.Instance.SendOpenWarehouse(); SetPlayerAttrActiveRedPoint(); EquipDecomRedCtrl(); StrengthAttrShift_RecordKey = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID,StrengthAttrShift_RecordKey); RoleEquipLocalSave = StringUtility.Contact("RoleEquipLocalSave", PlayerDatas.Instance.baseData.PlayerID); StrengthAttrShift_RecordKey = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "StrengthAttrShift"); if(LocalSave.GetIntArray(RoleEquipLocalSave) != null) { LocalSavePlaceArray = LocalSave.GetIntArray(RoleEquipLocalSave).ToList(); } else { LocalSavePlaceArray = null; } PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerLv; UpdatePlayerLv(PlayerDataRefresh.LV); } public override void UnInit() @@ -595,6 +612,112 @@ #endregion #region 玩家装备特殊逻辑 public int fairyRedPointLvlimt { get; private set; } public int wingsRedpointLvlimt { get; private set; } public int fairyGetPathId { get; private set; } public Dictionary<int, int> wingsGetPathIdDict { get; private set;} public void ParseConfig() { FuncConfigConfig funcConfig = Config.Instance.Get<FuncConfigConfig>("WingYuPeiHQTJ"); fairyRedPointLvlimt = int.Parse(funcConfig.Numerical1); wingsRedpointLvlimt = int.Parse(funcConfig.Numerical2); fairyGetPathId = int.Parse(funcConfig.Numerical3); wingsGetPathIdDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical4); } public int GetRoleEquipPathId(int equipPlace) { int playerJob = PlayerDatas.Instance.baseData.Job; switch ((RoleEquipType)equipPlace) { case RoleEquipType.retFairyCan: case RoleEquipType.retFairyCan2: return fairyGetPathId; case RoleEquipType.retWing: if(wingsGetPathIdDict.ContainsKey(playerJob)) { return wingsGetPathIdDict[playerJob]; } break; } return 0; } private void UpdatePlayerLv(PlayerDataRefresh type) { if (type != PlayerDataRefresh.LV) return; for(int i = 1; i < 13; i++) { CheckRoleEquipByPlace((RoleEquipType)i); } UpdateRoleEquipRed(); } public bool IsShowAddEquipByPlace(int equipPlace) { switch ((RoleEquipType)equipPlace) { case RoleEquipType.retFairyCan: case RoleEquipType.retFairyCan2: if(PlayerDatas.Instance.baseData.LV >= fairyRedPointLvlimt) { return true; } break; case RoleEquipType.retWing: if (PlayerDatas.Instance.baseData.LV >= wingsRedpointLvlimt) { return true; } break; } return false; } public void CheckRoleEquipByPlace(RoleEquipType equipType) { ItemModel itemModel = GetItemModelByIndex(PackType.rptEquip,(int)equipType); switch (equipType) { case RoleEquipType.retFairyCan: case RoleEquipType.retFairyCan2: if (PlayerDatas.Instance.baseData.LV >= fairyRedPointLvlimt && itemModel != null) { SetRoleEquipLocalSave((int)equipType); } break; case RoleEquipType.retWing: if (PlayerDatas.Instance.baseData.LV >= wingsRedpointLvlimt && itemModel != null) { SetRoleEquipLocalSave((int)equipType); } break; } } public void SetRoleEquipLocalSave(int equipPlace,bool isRedState = false) { if (isRedState && roleEquipRedDict[equipPlace].state == RedPointState.None) return; if(LocalSavePlaceArray != null) { if(!LocalSavePlaceArray.Contains(equipPlace)) { LocalSavePlaceArray.Add(equipPlace); LocalSave.SetIntArray(RoleEquipLocalSave, LocalSavePlaceArray.ToArray()); } } else { LocalSavePlaceArray = new List<int>(); LocalSavePlaceArray.Add(equipPlace); LocalSave.SetIntArray(RoleEquipLocalSave, LocalSavePlaceArray.ToArray()); } } #endregion private void GetItemEventCtrl(ItemModel itemModel) { if (showDropItem) @@ -764,6 +887,91 @@ } #region 红点逻辑判断 private Dictionary<int, Redpoint> roleEquipRedDict = new Dictionary<int, Redpoint>(); public void SetRoleEquipRedpoint() { roleEquipRedDict.Clear(); for (int i = 1; i < 13; i++) { int redKey = 102011003 + i; Redpoint redpoint = new Redpoint(MainRedDot.RedPoint_BagFuncKey, redKey); roleEquipRedDict.Add(i,redpoint); } } public void UpdateRoleEquipRed() { foreach(var key in roleEquipRedDict.Keys) { ItemModel itemModel = GetItemModelByIndex(PackType.rptEquip,key); switch ((RoleEquipType)key) { case RoleEquipType.retFairyCan: if (PlayerDatas.Instance.baseData.LV >= fairyRedPointLvlimt && !TryGetRoleEquipLocalSave(key) && itemModel == null && roleEquipRedDict[(int)RoleEquipType.retFairyCan2].state == RedPointState.None) { roleEquipRedDict[key].state = RedPointState.Simple; } else { roleEquipRedDict[key].state = RedPointState.None; } break; case RoleEquipType.retFairyCan2: if (PlayerDatas.Instance.baseData.LV >= fairyRedPointLvlimt && !TryGetRoleEquipLocalSave(key) && itemModel == null && roleEquipRedDict[(int)RoleEquipType.retFairyCan].state == RedPointState.None) { roleEquipRedDict[key].state = RedPointState.Simple; } else { roleEquipRedDict[key].state = RedPointState.None; } break; case RoleEquipType.retWing: if (PlayerDatas.Instance.baseData.LV >= wingsRedpointLvlimt && !TryGetRoleEquipLocalSave(key) && itemModel == null) { roleEquipRedDict[key].state = RedPointState.Simple; } else { roleEquipRedDict[key].state = RedPointState.None; } break; default: roleEquipRedDict[key].state = RedPointState.None; break; } } } private bool TryGetRoleEquipLocalSave(int equipPlace) { if(LocalSavePlaceArray != null) { for(int i = 0; i < LocalSavePlaceArray.Count; i++) { if(equipPlace == 9 || equipPlace == 10) { if (LocalSavePlaceArray[i] == 9 || LocalSavePlaceArray[i] == 10) { return true; } } else { if (LocalSavePlaceArray[i] == equipPlace) { return true; } } } } return false; } public const int ITEMPACK_REDKEY = 102011003; public Redpoint redpointItemPack = new Redpoint(MainRedDot.RedPoint_BagFuncKey, ITEMPACK_REDKEY); private void RedPointPackCtrl(PackType type) @@ -961,6 +1169,15 @@ } } public event Action RefreshBagEvent; public void RefreshBagInfo() { if(RefreshBagEvent != null) { RefreshBagEvent(); } } #endregion public void SetJumpToOneKeySell(Transform parent) System/KnapSack/New/BagWin.cs
@@ -63,12 +63,12 @@ protected override void OnPreOpen() { KnapsackTimeCDMgr.Instance.RefreshItemOverdueAct += RefreshRemainTime; playerPack.RefreshBagEvent += RefreshBagInfo; playerPack.lookEquipEvent += LookEquip; playerPack.RefreshItemCountAct += OnAddItemCell; playerPack.RefreshPackAct += RefreshPackModel; playerPack.GridRefreshEvent += OnPackCanUseGrid; } protected override void OnAfterOpen() { this.transform.SetAsLastSibling(); @@ -91,6 +91,7 @@ playerPack.RefreshPackAct -= RefreshPackModel; playerPack.lookEquipEvent -= LookEquip; playerPack.GridRefreshEvent -= OnPackCanUseGrid; playerPack.RefreshBagEvent -= RefreshBagInfo; } protected override void OnAfterClose() { @@ -127,6 +128,12 @@ } } private void RefreshBagInfo() { _gridlineCtrl.m_Scorller.RefreshActiveCellViews(); } public void OnRefrenshUIModel() { packModel = playerPack.GetSinglePackModel(PackType.rptItem); OnCreateGridLineCell(_gridlineCtrl); System/KnapSack/New/CommonItemBaisc.cs
@@ -218,8 +218,8 @@ { ItemConfig config = Config.Instance.Get<ItemConfig>(itemId); int playerJob = PlayerDatas.Instance.baseData.Job; if (config == null || (!isCompare && compareSocre <= 0) || config.EquipPlace == 0 || score == compareSocre || type == PackType.rptEquip || type == PackType.rptDogzEquip) return 0; if (config == null || (!isCompare && compareSocre == score) || config.EquipPlace == 0 || (score == compareSocre && compareSocre != 0) || (compareSocre <= 0 && (type == PackType.rptEquip || type == PackType.rptDogzEquip))) return 0; ItemModel model = playerPack.GetItemModelByGUID(guid); if (model != null && modelInterface.IsOverdue(guid, itemId, model.useDataDict)) return 1; System/KnapSack/New/EquipPlaceCell.cs
New file @@ -0,0 +1,94 @@ using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class EquipPlaceCell : MonoBehaviour { [SerializeField] Button noneItemBtn; [SerializeField] ItemCell itemCell; [SerializeField] public RoleEquipType equipType; PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } } PackModelInterface _modelInterface; PackModelInterface modelInterface { get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } GetItemPathModel pathModel { get { return ModelCenter.Instance.GetModel<GetItemPathModel>(); } } private void OnEnable() { Display((int)this.equipType); } public void Display(int equipPlace) { if (this.equipType != (RoleEquipType)equipPlace) return; ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip,equipPlace); noneItemBtn.RemoveAllListeners(); itemCell.cellBtn.onClick.RemoveAllListeners(); if (itemModel == null) { itemCell.gameObject.SetActive(false); if(playerPack.IsShowAddEquipByPlace(equipPlace)) { noneItemBtn.gameObject.SetActive(true); noneItemBtn.AddListener(()=> { playerPack.SetRoleEquipLocalSave(equipPlace,true); playerPack.UpdateRoleEquipRed(); string guid = modelInterface.GetHighestScoreEquipByPlace(equipPlace); if (string.IsNullOrEmpty(guid)) { int pathId = playerPack.GetRoleEquipPathId(equipPlace); if(pathId != 0) { pathModel.SetChinItemModel(pathId); } } else { playerPack.SetLookIndex(guid); playerPack.RefreshBagInfo(); } }); } else { noneItemBtn.gameObject.SetActive(false); } } else { playerPack.CheckRoleEquipByPlace((RoleEquipType)equipPlace); playerPack.UpdateRoleEquipRed(); noneItemBtn.gameObject.SetActive(false); itemCell.gameObject.SetActive(true); itemCell.Init(itemModel); itemCell.cellBtn.onClick.AddListener(() => { itemTipsModel.SetItemTipsModel(PackType.rptEquip, itemModel.itemInfo.ItemGUID, false); itemTipsModel.SetPutOnTipsBtn(itemTipsModel.curAttrData); itemTipsModel.ShowUICtrl(); }); } } } } System/KnapSack/New/EquipPlaceCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: fab44501321b6294caf4e7cabb066e2d timeCreated: 1540263979 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/KnapSack/New/GetWingsPathTips.cs
New file @@ -0,0 +1,458 @@ using DG.Tweening; using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class GetWingsPathTips : MonoBehaviour { #region TopUI [SerializeField] Button closeBtn; [SerializeField] GameObject putOnIcon; [SerializeField] Text titleText; [SerializeField] Text equipScoreDes; [SerializeField] Text equipScoreValue; [SerializeField] Text conditionText; [SerializeField] Image conditionValueText; [SerializeField] Text dateText; [SerializeField] ItemCell itemCell; #endregion #region MidUI [SerializeField] RectTransform attrContent; [SerializeField] ScrollRect scrollRect; [SerializeField] LayoutElement scrollLayout; [SerializeField] GameObject basicAttr; [SerializeField] Text basicTitleText; [SerializeField] Text basicAttrDes; [SerializeField] GameObject legendAttr; [SerializeField] Text legendTitleText; [SerializeField] Text legendCntPreview; [SerializeField] Text legendAttrDes; [SerializeField] List<GameObject> attrCutLinelist = new List<GameObject>(); #endregion [SerializeField] protected RectTransform _itemInfoTips; [SerializeField] RectTransform getWaysTips; [SerializeField] protected CanvasGroup _getWaysTipsAlpha; [SerializeField] private ScrollerController _waysCtrl; [SerializeField] private Transform waysLineCell; [SerializeField] private Button _closeWaysBtn; [SerializeField] [Header("移动时间")] protected float _moveTime = 0.3f; [SerializeField] protected CanvasGroup tipAlpha; [SerializeField] GameObject equipTipsObj; #region BottomUI [SerializeField] GameObject bottomPart; [SerializeField] private Button _getItemBtn; #endregion ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } PackModelInterface _modelInterface; PackModelInterface modelInterface { get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); } } ItemAttrData itemAttrData; private int curAttrTypeNum = 0; public void InitModel(ItemAttrData attrData) { curAttrTypeNum = 0; KnapsackTimeCDMgr.Instance.RefreshItemOverdueTimeAct += RefreshRemainTime; itemAttrData = attrData; InitUI(); closeBtn.AddListener(OnClickCloseBtn); _waysCtrl.OnRefreshCell += RefreshWayCell; _getItemBtn.onClick.AddListener(OnClickGetItemBtn); _closeWaysBtn.onClick.AddListener(OnClickCloseBtn); } private void OnEnable() { bottomPart.gameObject.SetActive(false); StartCoroutine(SetScrollSize()); } IEnumerator SetScrollSize() { yield return null; yield return null; attrContent.anchoredPosition3D = new Vector3(attrContent.anchoredPosition3D.x, 0, 0); SetMidUIHeight(attrContent.rect.height); StartCoroutine(ShowBottomPart()); } IEnumerator ShowBottomPart() { yield return null; bottomPart.gameObject.SetActive(true); StartCoroutine(SetPanelScale()); } IEnumerator SetPanelScale() { yield return null; itemTipsModel.SetCurTips(this.GetComponent<RectTransform>()); SetGetWaysPos(); //_itemInfoTips.localPosition = Vector3.zero; tipAlpha.alpha = 1; } public void SetGetWaysPos() { if (itemTipsModel.compareAttrData != null) { getWaysTips.anchoredPosition3D = Vector3.zero; } else { getWaysTips.anchoredPosition3D = new Vector3(this.GetComponent<RectTransform>().sizeDelta.x / 2, 0, 0); } } private void InitUI() { #region 设置TopUI titleText.text = itemTipsModel.GetItemTipsTitle(itemAttrData); titleText.color = UIHelper.GetUIColor(modelInterface.GetItemQuality(itemAttrData.itemId, itemAttrData.useDataDict)); ItemCellModel cellModel = new ItemCellModel(itemAttrData.itemId, itemAttrData.isPreview, (ulong)itemAttrData.count, itemAttrData.isBind, itemAttrData.guid, itemAttrData.packType, itemAttrData.isCompare, itemAttrData.useDataDict); itemCell.Init(cellModel); if (itemAttrData.packType == PackType.rptEquip) { putOnIcon.SetActive(true); } else { putOnIcon.SetActive(false); } equipScoreDes.text = Language.Get("EquipWin_EquipPointText_1"); equipScoreValue.text = itemAttrData.score.ToString(); if (itemAttrData.isHavePutLimit) { conditionText.gameObject.SetActive(true); conditionValueText.gameObject.SetActive(true); var _realmLv = itemAttrData.itemConfig.RealmLimit; var _realmCfg = Config.Instance.Get<RealmConfig>(_realmLv); if (PlayerDatas.Instance.baseData.realmLevel < _realmLv) { conditionText.text = UIHelper.GetTextColorByItemColor(TextColType.Red, Language.Get("RealmLimit1")); if (_realmLv != 0) { conditionValueText.SetSprite(_realmCfg.Img); } else { conditionText.gameObject.SetActive(false); conditionValueText.gameObject.SetActive(false); } } else { if (_realmLv != 0) { conditionText.text = StringUtility.Contact("<color=#FFF4CDFF>", Language.Get("RealmLimit1"), "</color>"); conditionValueText.SetSprite(_realmCfg.Img); } else { conditionText.gameObject.SetActive(false); conditionValueText.gameObject.SetActive(false); } } } else { conditionText.gameObject.SetActive(false); conditionValueText.gameObject.SetActive(false); } if (itemAttrData.itemConfig.ExpireTime > 0) { List<int> itemEffectTime = itemAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime); if (itemEffectTime != null && itemEffectTime[0] != 0 && itemAttrData.guid != "") { RefreshRemainTime(itemAttrData.guid); } else { SetDateLimitUI(itemAttrData.itemConfig.ExpireTime); } } else { dateText.gameObject.SetActive(false); } #endregion #region 设置MidUI SetBasicAttrUI(); SetLegendAttrUI(); for (int i = 0; i < attrCutLinelist.Count; i++) { if (i == curAttrTypeNum - 1) { attrCutLinelist[curAttrTypeNum - 1].SetActive(false); } else { attrCutLinelist[i].SetActive(true); } } #endregion } private void OnDisable() { KnapsackTimeCDMgr.Instance.RefreshItemOverdueTimeAct -= RefreshRemainTime; } private void RefreshRemainTime(string guid) { if (guid != itemAttrData.guid) { return; } ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid); if (cool != null) { SetDateLimitUI(cool.GetRemainTime()); } else { SetDateLimitUI(0); } } private void SetDateLimitUI(double time) { dateText.gameObject.SetActive(true); TimeSpan t = TimeSpan.FromSeconds(time); if (t.TotalDays > 1) { dateText.text = Language.Get("EquipInfo_OverdueDay", (int)t.TotalDays); } else if (t.TotalHours > 1) { dateText.text = Language.Get("EquipInfo_OverdueHour", (int)t.TotalHours); } else if (t.TotalMinutes > 1) { dateText.text = Language.Get("EquipInfo_OverdueMin", (int)t.TotalMinutes); } else if (t.TotalMinutes > 0) { dateText.text = Language.Get("EquipInfo_OverdueMin", 1); } else if (t.TotalSeconds <= 0) { dateText.text = Language.Get("EquipInfo_Overdued"); } } #region 设置属性UI private void SetBasicAttrUI() { basicAttr.SetActive(true); basicTitleText.text = Language.Get("RolePanel_BaseAttrText_1"); basicAttrDes.text = itemTipsModel.GetBasicAttr(itemAttrData); curAttrTypeNum = 1; } private void SetLegendAttrUI() { if (itemAttrData.legendDataDict == null) { legendAttr.SetActive(false); return; } curAttrTypeNum = 2; legendAttr.SetActive(true); legendTitleText.text = Language.Get("EquipWin_LegendPropObj_Text_1"); legendAttrDes.text = itemTipsModel.GetLegendAttr(itemAttrData); if (itemAttrData.isPreview) { legendCntPreview.gameObject.SetActive(true); legendCntPreview.text = itemTipsModel.GetWingsLegendAttrCntPreview(itemAttrData); } else { legendCntPreview.gameObject.SetActive(false); } } private void SetMidUIHeight(float midHeight) { scrollRect.enabled = false; if (midHeight < itemTipsModel.equipMidHeights[0]) { scrollLayout.preferredHeight = itemTipsModel.equipMidHeights[0]; } else if (midHeight > itemTipsModel.equipMidHeights[1]) { scrollRect.enabled = true; scrollLayout.preferredHeight = itemTipsModel.equipMidHeights[1]; } else { scrollLayout.preferredHeight = midHeight; } } #endregion private void OnClickGetItemBtn() { if (_getWaysTipsAlpha.alpha <= 0) { Vector3 pos = Vector3.zero; if (itemTipsModel.compareAttrData != null) { equipTipsObj.SetActive(false); pos = new Vector3(0, 0, 0); } else { pos = new Vector3(this.GetComponent<RectTransform>().sizeDelta.x, 0, 0); } _itemInfoTips.DOAnchorPos3D(pos, _moveTime); _getWaysTipsAlpha.DOFade(1, _moveTime); closeBtn.gameObject.SetActive(false); CreateWayCell(); } else { _itemInfoTips.DOAnchorPos3D(new Vector3(this.GetComponent<RectTransform>().sizeDelta.x, 0, 0), _moveTime); _getWaysTipsAlpha.DOFade(0, _moveTime); closeBtn.gameObject.SetActive(true); if (itemTipsModel.compareAttrData != null) { equipTipsObj.SetActive(true); } } } private void OnClickCloseBtn() { closeBtn.onClick.RemoveAllListeners(); KnapSackEventMgr.Instance.HideItemPopWin(); } #region getWaysTips逻辑 private List<GetItemWaysConfig> getWayslist; protected virtual void CreateWayCell() { getWayslist = itemTipsModel.GetWaysList(itemAttrData); _waysCtrl.Refresh(); int i = 0; int remain = getWayslist.Count % waysLineCell.childCount; int line = (int)getWayslist.Count / waysLineCell.childCount; if (remain > 0) { line += 1; } for (i = 0; i < line; i++) { _waysCtrl.AddCell(ScrollerDataType.Header, i); } _waysCtrl.Restart(); } private void RefreshWayCell(ScrollerDataType type, CellView cell) { int i = 0; for (i = 0; i < cell.transform.childCount; i++) { WayCell wayCell = cell.transform.GetChild(i).GetComponent<WayCell>(); if (wayCell == null) wayCell = cell.transform.GetChild(i).gameObject.AddComponent<WayCell>(); int index = (cell.transform.childCount) * cell.index + i; if (index <= getWayslist.Count - 1) { cell.transform.GetChild(i).gameObject.SetActive(true); GetItemWaysConfig itemWaysModel = getWayslist[index]; wayCell.icon.SetSprite(itemWaysModel.Icon); wayCell.wayName.text = itemWaysModel.Text; wayCell.funcName.text = itemWaysModel.name; wayCell.wayButton.RemoveAllListeners(); wayCell.wayButton.AddListener(() => { ClickWayCell(itemWaysModel); }); } else { cell.transform.GetChild(i).gameObject.SetActive(false); } } } public void ClickWayCell(GetItemWaysConfig itemWaysModel) { OnClickCloseBtn(); ModelCenter.Instance.GetModel<GetItemPathModel>().ClickGetWay(itemAttrData.itemId, itemWaysModel); } #endregion } } System/KnapSack/New/GetWingsPathTips.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: a95419693c2992743b4e1127f6b4959c timeCreated: 1540294742 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/KnapSack/New/RoleEquipWin.cs
@@ -17,30 +17,8 @@ public class RoleEquipWin : Window { #region 成员变量 [SerializeField] private GameObject _beastArea; //灵守 [SerializeField] private GameObject _helmetArea; //头盔 [SerializeField] private GameObject _clothArea; //胸甲 [SerializeField] private GameObject _pantsArea; //护腿 [SerializeField] private GameObject _shoesArea; //鞋子 [SerializeField] private GameObject _weaponArea; //武器 [SerializeField] private GameObject _retWeapon2; //副手 [SerializeField] private GameObject _fairy01Area; //圣器1 [SerializeField] private GameObject _fairy02Area; //圣器2` [SerializeField] private GameObject _necklaceArea; //项链 [SerializeField] private GameObject _beltArea; //腰带 [SerializeField] private GameObject _wingsArea; //翅膀 [SerializeField] List<EquipPlaceCell> equipPlaces = new List<EquipPlaceCell>(); [SerializeField] RawImage RoleShowBG; [SerializeField] private Button _starCountBtn; @@ -70,13 +48,6 @@ get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } } private FuncConfigConfig _equipPlaceModel; private List<string> _equipCodelist; private List<string> _equipNamelist; private RoleEquipType _equipType; private BagWin bagWin; private Dictionary<int,ItemModel> _roleEquipDict = new Dictionary<int,ItemModel>(); private Dictionary<RoleEquipType ,GameObject> equipArealist = new Dictionary<RoleEquipType, GameObject>(); ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel @@ -96,19 +67,6 @@ protected override void BindController() { equipArealist.Add(RoleEquipType.retWeapon, _weaponArea); equipArealist.Add(RoleEquipType.retClothes, _clothArea); equipArealist.Add(RoleEquipType.retHat, _helmetArea); equipArealist.Add(RoleEquipType.retTrousers, _pantsArea); equipArealist.Add(RoleEquipType.retShoes, _shoesArea); equipArealist.Add(RoleEquipType.retNeck, _necklaceArea); equipArealist.Add(RoleEquipType.retWeapon2, _retWeapon2); equipArealist.Add(RoleEquipType.retFairyCan, _fairy01Area); equipArealist.Add(RoleEquipType.retFairyCan2, _fairy02Area); equipArealist.Add(RoleEquipType.retBelt, _beltArea); equipArealist.Add(RoleEquipType.retWing, _wingsArea); equipArealist.Add(RoleEquipType.retSpiritAnimal, _beastArea); _oneKeySellBtn.onClick.AddListener(OnClickOneKeySell); _sortBtn.onClick.AddListener(() => { OnClickSortBtn(); }); } @@ -144,12 +102,6 @@ UIEventTrigger.Get(_starCountBtn.gameObject).OnDown = OnClickStarBtn; UIEventTrigger.Get(_equipIntensifyBtn.gameObject).OnDown = OnClickEquipIntensify; foreach (var go in equipArealist.Values) { GameObject itemCell = go.transform.Find("ItemCell").gameObject; itemCell.gameObject.SetActive(false); } OnFrenshBagInfo(); } @@ -162,26 +114,12 @@ protected override void OnAfterOpen() { SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptEquip); if(singlePack != null) { Dictionary<int,ItemModel> itemPlaceDict = singlePack.GetPackModelIndexDict(); foreach (var model in itemPlaceDict.Values) { PutOnEquip(model.packType,model.itemInfo.ItemPlace,model.itemInfo.ItemID); } } SuccessConfig successConfig = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId); if(successConfig != null && successConfig.Type == 95) { playerPack.SetJumpToOneKeySell(_oneKeySellBtn.transform); } //if(playerPack.IsActiveSTRAttr()) //{ // ControlEffect(0,true); //} if(playerPack.IsActiveStarAttr()) { @@ -231,42 +169,28 @@ } } public void UpdateRoleEquip(int equipPlace) { for (int i = 0; i < equipPlaces.Count; i++) { equipPlaces[i].Display(equipPlace); } UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); } public void PutOnEquip(PackType type,int index, int Id) { //临时条件判断 if (type != PackType.rptEquip || !equipArealist.ContainsKey((RoleEquipType)index)) return; if (type != PackType.rptEquip) return; ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip,index); ItemCell itemCell = equipArealist[(RoleEquipType)index].transform.Find("ItemCell").GetComponent<ItemCell>(); itemCell.gameObject.SetActive(true); itemCell.Init(itemModel); itemCell.cellBtn.onClick.RemoveAllListeners(); itemCell.cellBtn.onClick.AddListener(()=> { itemTipsModel.SetItemTipsModel(PackType.rptEquip, itemModel.itemInfo.ItemGUID,false); itemTipsModel.SetPutOnTipsBtn(itemTipsModel.curAttrData); itemTipsModel.ShowUICtrl(); }); if (_roleEquipDict.ContainsKey(itemModel.itemInfo.ItemPlace)) { _roleEquipDict[itemModel.itemInfo.ItemPlace] = itemModel; } else { _roleEquipDict.Add(itemModel.itemInfo.ItemPlace,itemModel); } UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); UpdateRoleEquip(index); } public void PutOffEquip(PackType type, int place,int id) { if (type != PackType.rptEquip) return; ClearEquipInfo(place); equipArealist[(RoleEquipType)place].transform.Find("ItemCell").gameObject.SetActive(false); UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job); UpdateRoleEquip(place); } private void OnClickEquipIntensify(GameObject go) @@ -278,35 +202,7 @@ { WindowCenter.Instance.Open<PlayerStarNumWin>(); } public void ClearEquipInfo(int place) { if (_roleEquipDict.ContainsKey(place)) { _roleEquipDict.Remove(place); } } public bool CheckEquipIfPutOn(int equipPlace) { if (_roleEquipDict.ContainsKey(equipPlace)) return true; return false; } private List<string> GetToolsList(string tools, List<string> toolslist) { toolslist = new List<string>(); string[] toolsArray = tools.Split('|'); for (int i = 0; i < toolsArray.Length; i++) { toolslist.Add(toolsArray[i]); } return toolslist; } public void OnClickSortBtn() { modelInterface.SendPackResetQuest(PackType.rptItem); @@ -316,7 +212,6 @@ _sortBtn.enabled = false; } private void RefreshTime(float time) { System/KnapSack/New/WingsWin.cs
@@ -1,149 +1,165 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, September 07, 2017 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class WingsWin : Window { #region 成员变量 [SerializeField] WingsTip wingsTip; [SerializeField] BuyWingsTip buyTip; [SerializeField] CanvasGroup wingsTipAlpha; [SerializeField] CanvasGroup buyTipAlpha; #endregion ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } private List<GameObject> TempCreatelist = new List<GameObject>(); #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { KnapSackEventMgr.Instance.AddWingsWinTempObjEvent = AddTempCreatelist; KnapSackEventMgr.Instance.HideWingsWinEvent = OnHidePanel; wingsTipAlpha.alpha = 0; buyTipAlpha.alpha = 0; UIShow(); } protected override void OnAfterOpen() { this.transform.SetAsLastSibling(); } protected override void OnPreClose() { for (int i = 0; i < TempCreatelist.Count; i++) { Destroy(TempCreatelist[i]); } TempCreatelist.Clear(); wingsTip.gameObject.SetActive(false); buyTip.gameObject.SetActive(false); } protected override void OnAfterClose() { } #endregion public void UIShow() { if (itemTipsModel.compareAttrData == null) { if (itemTipsModel.curAttrData != null) { switch (itemTipsModel.curAttrData.ChildType) { case ItemTipChildType.Normal: wingsTip.InitModel(itemTipsModel.curAttrData); wingsTip.gameObject.SetActive(true); break; case ItemTipChildType.Buy: buyTip.InitModel(itemTipsModel.curAttrData); buyTip.gameObject.SetActive(true); break; } } } else { if (itemTipsModel.curAttrData != null) { switch (itemTipsModel.curAttrData.ChildType) { case ItemTipChildType.Normal: WingsTip compareTip = CloneEquipUI(this.transform, wingsTip.gameObject).GetComponent<WingsTip>(); compareTip.InitModel(itemTipsModel.compareAttrData); TempCreatelist.Add(compareTip.gameObject); wingsTip.InitModel(itemTipsModel.curAttrData); compareTip.gameObject.SetActive(true); wingsTip.gameObject.SetActive(true); break; case ItemTipChildType.Buy: buyTip.InitModel(itemTipsModel.curAttrData); wingsTip.InitModel(itemTipsModel.compareAttrData); buyTip.gameObject.SetActive(true); wingsTip.gameObject.SetActive(true); break; } } } } private void AddTempCreatelist(GameObject obj) { TempCreatelist.Add(obj); } public GameObject CloneEquipUI(Transform parent, GameObject target) { GameObject go = Instantiate(target); go.transform.SetParent(parent); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; return go; } public void OnHidePanel() { CloseImmediately(); } } } //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, September 07, 2017 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class WingsWin : Window { #region 成员变量 [SerializeField] WingsTip wingsTip; [SerializeField] BuyWingsTip buyTip; [SerializeField] GetWingsPathTips getWingsPathTip; [SerializeField] CanvasGroup wingsTipAlpha; [SerializeField] CanvasGroup buyTipAlpha; [SerializeField] CanvasGroup wingsPathAlpha; #endregion ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } private List<GameObject> TempCreatelist = new List<GameObject>(); #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { KnapSackEventMgr.Instance.AddWingsWinTempObjEvent = AddTempCreatelist; KnapSackEventMgr.Instance.HideWingsWinEvent = OnHidePanel; itemTipsModel.SetCurTips(null); itemTipsModel.SetCompareTips(null); wingsTipAlpha.alpha = 0; buyTipAlpha.alpha = 0; wingsPathAlpha.alpha = 0; UIShow(); } protected override void OnAfterOpen() { this.transform.SetAsLastSibling(); } protected override void OnPreClose() { for (int i = 0; i < TempCreatelist.Count; i++) { Destroy(TempCreatelist[i]); } TempCreatelist.Clear(); wingsTip.gameObject.SetActive(false); buyTip.gameObject.SetActive(false); getWingsPathTip.gameObject.SetActive(false); } protected override void OnAfterClose() { } #endregion public void UIShow() { if (itemTipsModel.compareAttrData == null) { if (itemTipsModel.curAttrData != null) { switch (itemTipsModel.curAttrData.ChildType) { case ItemTipChildType.Normal: wingsTip.InitModel(itemTipsModel.curAttrData); wingsTip.gameObject.SetActive(true); break; case ItemTipChildType.Buy: buyTip.InitModel(itemTipsModel.curAttrData); buyTip.gameObject.SetActive(true); break; case ItemTipChildType.GetWingsPath: getWingsPathTip.InitModel(itemTipsModel.curAttrData); getWingsPathTip.gameObject.SetActive(true); break; } } } else { if (itemTipsModel.curAttrData != null) { switch (itemTipsModel.curAttrData.ChildType) { case ItemTipChildType.Normal: WingsTip compareTip = CloneEquipUI(this.transform, wingsTip.gameObject).GetComponent<WingsTip>(); compareTip.InitModel(itemTipsModel.compareAttrData); TempCreatelist.Add(compareTip.gameObject); wingsTip.InitModel(itemTipsModel.curAttrData); compareTip.gameObject.SetActive(true); wingsTip.gameObject.SetActive(true); break; case ItemTipChildType.Buy: buyTip.InitModel(itemTipsModel.curAttrData); wingsTip.InitModel(itemTipsModel.compareAttrData); buyTip.gameObject.SetActive(true); wingsTip.gameObject.SetActive(true); break; case ItemTipChildType.GetWingsPath: getWingsPathTip.InitModel(itemTipsModel.curAttrData); getWingsPathTip.gameObject.SetActive(true); wingsTip.InitModel(itemTipsModel.compareAttrData); wingsTip.gameObject.SetActive(true); break; } } } } private void AddTempCreatelist(GameObject obj) { TempCreatelist.Add(obj); } public GameObject CloneEquipUI(Transform parent, GameObject target) { GameObject go = Instantiate(target); go.transform.SetParent(parent); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; return go; } public void OnHidePanel() { CloseImmediately(); } } } System/WindowBase/Window.cs
@@ -508,11 +508,12 @@ private void AddSreenMask() { var maskObject = UIUtility.CreateWidget("ScreenMask", "ScreenMask"); var rectTransform = maskObject.transform as RectTransform; var maskObject = new GameObject("ScreenMask"); var rectTransform = maskObject.AddMissingComponent<RectTransform>(); rectTransform.sizeDelta = new Vector2(1336, 752); rectTransform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one); rectTransform.SetAsFirstSibling(); windowMask = maskObject.GetComponent<RawImage>(); windowMask = maskObject.AddMissingComponent<RawImage>(); } private RectTransform FindParent(WindowType _type) Utility/EnumHelper.cs
@@ -1547,6 +1547,7 @@ UnionWarehouseDonation, //捐献装备 UnionWarehouseExchange, //兑换装备 GetEquipPath, //装备获取途径 GetWingsPath,//翅膀获取途径 } public enum InstalledAsset