赞
踩
1、构建ItemRead并传入一个参数itemSO
由于时点击时显示物品信息,所以每一个Slot也是一个按钮,请给Slot添加按钮组件
2、同步物品的信息方法
(这里加上 “:” 的原因是因为我在搭建场景时,没有考虑好具体的需求,所以在开始之间最好有一个完整的思路)
3、在代码Slot中获取对应点击时的按钮
public Image slotImage;
public Button showDetailsBtn;
4、在场景中拖拽赋值
5、在Slot代码中书写具体点击按钮时执行逻辑
private void Awake()
{
showDetailsBtn.onClick.AddListener(ItemRead);
}
public void ItemRead()
{
InventoryManager.ItemRead(slotItemSO);
}
这样就实现了点击时,背包右侧显示物品信息
(这里我们只讲具体的实现逻辑)
1、获取右侧生成显示物品信息的坐标
2、创建显示物品信息的预制体Gain
3、创建挂载在预制体上的代码Gain
public class Gain : MonoBehaviour
{
public Text gainName;//物品的名字
}
4、在BagManager中获得预制体,并拖拽赋值
public Gain gainPre;
5、在InventoryManager中构建方法DisplayGetArticleFromWorld,并传递一个参数Slot,
public static void DisplayGetArticleFromWorld(Slot getItem)//展示从世界获得的物品信息
{
Gain gain = null;
gain = Instantiate(instance.bagManager.gainPre,instance.bagManager.displayGainInformation);
gain.gainName.text = getItem.slotItemSO.itemName;
}
6、这个代码需要在创建Slot时执行(不了解的可以查看Unity背包系统一:实现物品获取效果)
7、持续一段时间后销毁自身
检测自身是否启动,如果是就在延迟一秒后销毁自身,在Gain代码中执行。
(相信看到这里大家会发现,我们也可以传递Item参数,在场景中的Item销毁时执行,这个方法大家可以自行实验)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。