为了实现拖拽功能我们要对代码进行升级,为了简洁明了我写在这篇文章里
先粘更新后的脚本,更新后的脚本可以实现
物品的存放,
数据的存储(使用scriptable和链表),
目录
item脚本
[CreateAssetMenu(fileName ="New Item",menuName ="Inventory/New Item")]//默认名字,右键菜单叫什么名字/
/// <summary>
/// 属性
/// </summary>
public class Items : ScriptableObject
{/// <summary>
/// 物品的名字
/// </summary>
public string itemName;
/// <summary>
/// 物品的图片
/// </summary>
public Sprite itemImage;
public int ItemHeld;///数量
[TextArea]
/// <summary>
/// 介绍
/// </summary>
public string ItemInfo;
/// <summary>
/// 是否可以装备上
/// </summary>
public bool equip;
}
inventory脚本
[CreateAssetMenu(fileName = "New Inventory", menuName = "Inventory/New Inventory")]
public class Inventory : ScriptableObject
{
public List<Items> itemList = new List<Items> ();
// public Items[] itemlist;
}
上面两个一个是物品的属性,一个是背包的属性
InventoryOnworld脚本
/// <summary>
/// logic:挂在在脚本上我要知道这是属于哪一个我们创建好的物品的数据,
/// 生成变量告诉UNity这是一个宝剑还是一个鞋
/// </summary>
public class ItemOnWorld : MonoBehaviour
{[Tooltip("Items->物品是哪一个数据库")]
public Items thisItem;
[Tooltip("属于哪一个背包")]
public Inventory PlayerInventory;
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.gameObject.CompareTag("Player"))
{
AddNewItem();/