背包系统
创建物品基类
创建基类的子类消耗品类。脚本都放在电脑里了,创建equipment类,创建各种类。创建Resources文件夹,把sprite文件夹放在这个文件夹下面。把里面的backgroud放在resources文件夹外面的sprites文件夹中。在json在线编辑器中写好json文件,然后创建一个文本文件(后缀名改为json),然后复制到桌面。把这个文件拖到untiy的resources里面即可
创建inventorymanage类。把litjson的dll拖到unity的plugins里面。在inventorymanage里面添加对litjson的引用(可能已经引用过了)。下面用的是assetstore里面的json object方法。在inventorymanage里面解析json,注意这个插件里面tostring改为. str,转化为int类型为. n,其他在插件文档里可以找得到。吧inventorymanage挂给空物体,即可运行。脚本都在电脑里。
创建UI,创建一个panel 作为背景,canvans里canvas scaler设为第二个,切合屏幕大小。可以在windows—rendering里面去掉天空盒子,用main camera的backgroud修改背景颜色。创建一个子panel,color的alpha给0。子panel下面创建image作为物品槽。
slotpanel给一个grid layout group组件。调整参数,复制slot。创建标题,把titleBg的anchor放在最上面
把两个panel的ray cast target取消勾选。slot做成预制件
item也做成预制件(和他子物体一起取消raycadt target。)创建脚本itemUi给item,创建脚本slot给slot。创建脚本knapsack给knapsackpanel。创建脚本inventory。
创建inage和text,让inage成为text的子物体,image的anchor选最右下角的那个。
这个脚本是用来测试的。给text添加content size fitter组件,都给preferred size。把image的alpha调为最大,再给text创建子物体text
创建脚本tooltip给tooltip,取消这三个的ray cast target。给tooltip一个canvas group组件,取消勾选interactable。把slot的raycast target勾选上。让物品说明跟随鼠标的功能似乎无法实现。
拖一个item到场景改名。复制一
个knapasackpanel,改名为chest,再创建一个chest脚本给chest。给knapasackpanel和chest添加canvas group组件。复制一个panel改名为characterPanel,把slot拖出来,删除slotpanel
在canvas里面,摆放的位置越下面,显示的越在上面。创建脚本equipmentslot。给到characterpanel下面的slot。把原来的
slot改名做成预制体。把item赋值过去。创建characterpanel脚本给characterpanel。可以把三个panel的ray cast target都勾选上,这样就不会丢掉物品。transform的寻找方法只能用于下面一层子物体。复制一个vendorpanel,创建一个vendor给这个物体。创建vendorslot脚本。给vendorpanel下面的slot改名为vendorslot给同名脚本,做成预制体。创建image子物体text,金币和他的数量。复制forgepanel。创建脚本forge给forgepanel。创建image和text,给imagebutton组件,为锻造按钮。创建formula脚本,button里面添加forge里面的forgeitem方法。有时候新建的对象可能会输出位null。复制锻造按钮,改名为保存和加载。