Unity3D自学笔记——UGUI背包系统(三)物品弹出提示框

物品弹出提示框

效果图

这里写图片描述

这里写图片描述

利用Toggle实现物品选中效果

向背包里层pnlGrid添加一个Toggle Group
这里写图片描述

这里写图片描述
修改Item预制体,将其修改为Toggle
这里写图片描述
向Item添加Toggle组件
这里写图片描述
默认Is On不选中
其余的设置不变,多了一个Checkmark,即IsOn为True时会显示该图片,所以设置一张图片。

预制体里不能设置Toggle的ToggleGroup,需要在代码里控制,修改UIItem脚本

public class UIItem : MonoBehaviour, IPointerClickHandler {
    private Image m_Icon;
    private Text m_TxtName;
    private Text m_TxtCount;
    private ItemEntity m_Item;
    private Toggle m_Toggle;
    private ToggleGroup m_ToggleGroup;

    public event Action<ItemEntity> PointerClick;

    void Awake()
    {
        this.m_Icon = UIHelper.FindChild<Image>(transform, "imgIcon");
        this.m_TxtName = UIHelper.FindChild<Text>(transform, "imgName/Text");
        this.m_TxtCount = UIHelper.FindChild<Text>(transform, "imgCount/Text");
        this.m_Toggle = transform.GetComponent<Toggle>();
    }

    public void SetInfo(ItemEntity item)
    {
        this.m_Item = item;
        this.m_TxtName.text = item.Name;
        this.m_Icon.overrideSprite = Resources.Load<Sprite>(item.IconPath);
        this.m_ToggleGroup = transform.parent.parent.GetComponent<ToggleGroup>();
        this.m_Toggle.group = this.m_ToggleGroup;
        //For Test
        this.m_TxtCount.text = item.StackCount.ToString();
    }

    public void OnPointerClick(PointerEventData eventData)
    {
        if (PointerClick != null)
            PointerClick(m_Item);
    }
}

这里将控件都改为在Awake里获取了,界面赋值,不知道为什么老会丢失。

弹出界面

这里写图片描述

这里写图片描述
其他控件不描述了,其中在基础属性里面用了滚动效果,如果属性太多就会出现滚动条,可以进行滑动。

主要是Show方法,其余都是显示的判断拼接。
调用过程:
1.添加UIItem的时候,会将UIItem对应的ItemEntity存储到每一个UIItem中
2. UIInventory注册了UIItem的PointerClick事件,当UIItem被点击后,就会通知UIInventory,并把自己的ItemEntity传给UIInventory
3. 当UIInventory接到通知后,就会调用事件参数里的ItemEntity信息

public class UIItemToolTip : UISce
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值