unity简单的背包系统笔记(二)(有视频讲解)

本文介绍如何在Unity中实现一个简单的背包系统,包括物品的存放、数据存储(使用Scriptable对象和链表),以及拖拽功能的实现。通过更新后的脚本,详细解释了item、inventory、InventoryOnworld、inventorymanager和slot脚本的作用和逻辑,特别是InventoryOnworld脚本中的触发检测逻辑和slot脚本中的赋值操作。文章还提及了将createnewitem方法拆分以适应拖动效果的改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了实现拖拽功能我们要对代码进行升级,为了简洁明了我写在这篇文章里

先粘更新后的脚本,更新后的脚本可以实现

物品的存放,

数据的存储(使用scriptable和链表),

目录

item脚本

inventory脚本

InventoryOnworld脚本

inventorymanager脚本:

slot脚本

被替换掉的方法:createnewitem


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();/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值