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

本教程详细讲解了如何在Unity中创建一个简单的背包系统,包括创建Item脚本存储数据,实现Inventory脚本,创建触发条件ItemOnWorld,设计背包格子Slot,以及InventoryManager的控制。通过视频和代码示例,介绍了背包系统的各个功能,如物品点击弹出描述,拖拽交换位置等。

视频参考:Unity教程:背包系统:04:显示在背包里(C# code) InventoryManager_哔哩哔哩_bilibili

素材下载:

https://pan.baidu.com/s/1o7_RW_QQ1rrAbDzT69ApRw

提取码: 8s95

 unity简单的背包系统笔记(二)(有视频讲解)_yanyufeichengxu的博客-优快云博客

 unity简单的背包系统笔记(三)(有视频讲解)_yanyufeichengxu的博客-优快云博客

 unity简单的背包系统笔记(四)(有视频讲解)+知识点整理合集_yanyufeichengxu的博客-优快云博客

目录

创建Item脚本(logic:存储数据)

----创建背包脚本Inventory

创建触发条件:ItemOnWorld

创建背包格子脚本:slot

实现功能,点击物品弹出描述在slot里面添加

  绑定按钮点击

创建Inventorymanager挂载在画布上控制脚本


1.创建panel(修改为居中模式:这样就可以调节长宽高)起名叫:Bag 515 415

就是弄个背景框,弄个grid lay out 
-----
2.创建数据库
   使用:ScriptableObject API->不用挂载在脚本上

创建Item脚本(logic:存储数据)

        

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[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


  创建脚本Inventory,我希望这个背包系统是一个列表他将我所有的物品都存储在一个背包中,这样就可以创建不同的背包:铁匠铺的背包,药水商的背包等等,装备武器的背包

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "New Inventory", menuName = "Inventory/New Inventory")]
public class Inventory : ScriptableObject
{
    public List<Items> itemList = new List<Items> ();
   // public Items[] itemlist;
}

这样就把item里的数据都存储到了Inventory背包里面

list数组和普通数组:

list数组常用方法

1,Capacity获取容量大小
2,Add()方法添加元素

3.3,Insert()方法插入元素

4,[index]访问元素
5,Count属性访问元素个数
6,RemoveAt()方法移除指定位置的元素

7,IndexOf()方法取得一个元素所在列表中的索引位置
LastIndexOf()上面的方法是从前往后搜索,这个是从后往前搜索,搜索到满足条件的就停止,上面的两个方法,如果没有找到指定元素就返回-1

8,Sort()对列表中是元素进行从小到大排序

9.删除元素.Remove

10.判断某个元素是否在该List中

    List.Contains(T item) 返回true或false

11.给List里面元素顺序反转 List.Reverse() 可以与List.Sort()配合使用

12.List清空 List.Clear()

13.List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素 

14.List.Find方法 搜索与指定谓词所定义的条件相匹配的元素,并返回整个List中的第一个匹配元素

----

创建触发条件:ItemOnWorld


 logic:当我的游戏角色碰到物品时Inverotory里就加1
 功能实现:
  拖拽物品到地图上添加必要组件(Collider-

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值