unity学习记录第十章-背包

unity学习记录第十章

要点
利用UI创建一个背包系统
利用ScriptableObject存储数据
增加物品拖拽功能
增加背包拖拽功能
笔记
1.使用UI当中的Panel、Image、Text、Button等组件构建基本界面
2.Button按键不用代码实现关闭setActive
3.Grid layout group的组件使用方法
4.代码实现一个按键控制打开和关闭
isOpen = myBag.activeSelf
5.类继承自ScriptableObject
[CreateAssetMenu(fileName = “New Inventory”, menuName = “Inventory/New Bag”)]
6.逻辑:
在世界地图触发到道具后删除或隐藏该道具
在背包中新建该道具slot,将item的属性传递给该slot,包括类型,图片,数量,描述
7.刷新背包的方法:循环语句删除背包内所有的slotItem,再次循环添加列表中的所有item
8.设置父类:transform.SetParent()
获得子类:transform.GetChild(i).gameObject
9.去掉背景格子图,用每个slot代表一个格子,创建一个列表保存格子,在每个slot下新建item,把道具的属性赋值给这个item.
10.刷新道具时要清除列表
11.拖拽:使用事件using UnityEngine.EventSystems;
接口:IBeginDragHandler, IDragHandler, IEndDragHandler
给item添加组件Canvas Group,CanvasGroup组件的BlocksRaycasts值,true为正常点击触发,false时,不会检测到拖拽物体,所有点击按钮不管用
12.拖拽背包:使用接口IDragHandler,
一行代码解决:GetComponent().anchoredPosition += eventData.delta;
13.优化物品拖拽功能:拖拽物品时一起更改数据库中的物品的序号
初始slot的编号即是数据库内的编号,先将每个slot赋予编号,拖拽开始时取到道具编号,交换被替换的道具的编号,拖拽到无道具的slot只需将编号为初始的列表置为null即可

发布了16 篇原创文章 · 获赞 0 · 访问量 329

猜你喜欢

转载自blog.csdn.net/m0_46134547/article/details/104933752
今日推荐