예제 #1
0
        private void UpdateWeaponPart(WeaponBagUiItem uiItem, IWeaponBagItemInfo info)
        {
            foreach (var pair in WeaponPartTypeToIndexDict)
            {
                var assetInfo = null == info ? _emptyIcon : info.GetWeaponPartInfoByWeaponPartType(pair.Key);
                var tf        = uiItem.WeaponPartTfList[pair.Value - 1];
                var image     = uiItem.WeaponPartIconList[pair.Value - 1];

                if (string.IsNullOrEmpty(assetInfo.AssetName) || string.IsNullOrEmpty(assetInfo.BundleName))
                {
                    tf.gameObject.SetActive(false);
                    continue;
                }
                else
                {
                    tf.gameObject.SetActive(true);
                }
                if (spritePool.ContainsKey(assetInfo))
                {
                    image.sprite = spritePool[assetInfo];
                }
                else
                {
                    spritePool.Add(assetInfo, new Sprite());
                    Loader.RetriveSpriteAsync(assetInfo.BundleName, assetInfo.AssetName, (sprite) => {
                        spritePool[assetInfo] = sprite;
                        image.sprite          = sprite;
                    });
                }
            }
        }
예제 #2
0
        private void InitWeaponBagUiItem(Transform root, Transform transform)
        {
            WeaponBagUiItem uiItem = new WeaponBagUiItem();

            {
                uiItem.WeaponBagItem      = transform;
                uiItem.WeaponName         = transform.Find("Name").GetComponent <Text>();
                uiItem.WeaponIcon         = transform.Find("WeaponDisplayArea/WeaponIcon").GetComponent <Image>();
                uiItem.WeaponPartGroup    = transform.Find("WeaponPartGroup");
                uiItem.WeaponPartIconList = new List <Image>();
                uiItem.WeaponPartTfList   = new List <Transform>();
                for (int i = 0; i < MaxWeaponPartNum; i++)
                {
                    var item = uiItem.WeaponPartGroup.GetChild(i);
                    uiItem.WeaponPartTfList.Add(item);
                    uiItem.WeaponPartIconList.Add(item.Find("Icon").GetComponent <Image>());
                }
            }
            weaponItemDict[root] = uiItem;
        }
예제 #3
0
        private void UpdateBagItem(IWeaponBagItemInfo item, WeaponBagUiItem uiItem)
        {
            UpdateWeaponTip(item, uiItem);
            uiItem.WeaponName.text = null == item ? "" : item.WeaponName;
            var weaponIcon = uiItem.WeaponIcon;
            var assetInfo  = null == item ? _emptyIcon : item.WeaponIconAssetInfo;

            if (spritePool.ContainsKey(assetInfo))
            {
                var sprite = spritePool[assetInfo];
                if (string.IsNullOrEmpty(assetInfo.BundleName) || string.IsNullOrEmpty(assetInfo.AssetName) || sprite == null)
                {
                    weaponIcon.enabled = false;
                }
                else
                {
                    weaponIcon.enabled = true;
                    weaponIcon.sprite  = spritePool[assetInfo];
                }
                UIUtils.SetImageSuitable(weaponIcon);
            }
            else
            {
                spritePool.Add(assetInfo, new Sprite());
                Loader.RetriveSpriteAsync(assetInfo.BundleName, assetInfo.AssetName, (sprite) =>
                {
                    spritePool[assetInfo] = sprite;
                    weaponIcon.sprite     = sprite;
                    weaponIcon.enabled    = true;
                    UIUtils.SetImageSuitable(weaponIcon);
                });
            }

            var weaponPartGroup = uiItem.WeaponPartGroup;

            if (weaponPartGroup.gameObject.activeSelf)
            {
                UpdateWeaponPart(uiItem, item);
            }
        }
예제 #4
0
        private void UpdateWeaponTip(IWeaponBagItemInfo item, WeaponBagUiItem uiItem)
        {
            var transform = uiItem.WeaponIcon.transform;

            if (item == null || item.id <= 0)
            {
                tipManager.UnRegisterTip(transform);
                return;
            }

            var id = item.id;

            if (id <= 0)
            {
                return;
            }
            var data = new TipShowData();

            data.CategoryId = (int)ECategory.Weapon;
            data.TemID      = id;
            tipManager.RegisterTip <CommonItemTipModel>(transform, data);
        }