怎样自己用素材做一个装备系统:包括背包面板、物品格子、物品装备;装备放入背包;在背包内移动、交换、叠加装备.
恩,事实证明这不是B站UP主李三影原创,完全照抄自GameGrind却提都没提,Shame On You!改标题!
--------------------------------------------------------------
1.建立装备信息的JSON文件并读取
JSON是一种数据交互格式,在unity里使用JSON文件前先下载一个LitJSON的插件并导入到Assets下(插件下载地点见李三影的教程下方说明)。
然后在Assets文件夹下新建文件夹StreamingAssets,注意这个文件夹的名称要区分大小写,拼写要完全相同(case-sensitive)。这个文件夹下的文件我们在其他脚本内读取路径时不会随着工程文件夹(比如打包后)的移动而读取失败。
在StreamingAssets文件夹内新建一个文本文档命名为Item,并把后缀改成json(后缀不区分大小写),就创建了一个用来存装备数据的JSON文件。
然后VS打开该JSON文件并按下图输入,注意格式(英文""和英文, 每项装备以{},分隔):
输入完毕后保存回到unity新建Scripts文件夹并新建ItemDataBase c#脚本(用来读取JSON文件信息),打开并编辑
保存后回到unity测试。在当前示范json文件内所有条目都是字母的,debug时没有问题。但如果条目有中文,debug出来的是乱码(并不是有bug),是因为中文编码问题(GB2312)。解决方法是在VS内点击高级保存选项(要调用高级保存选项在视图→工具栏→自定义→命令→添加命令→文件→高级保存选项),将json文件保存为(Unicode(UTF-8带签名))格式。
2.制作仓库,格子和装备的prefab
Assets下新建Sprites文件夹,将要用的素材拖入(素材下载见教程),要注意的是拖入的素材一般是PNG格式,我们在Inspector下改成sprite(2D and UI)
记得点击sprite editor把素材的边切一下(拖动四周的绿线),为了之后改变填充模式时使边缘始终保持高的清晰度
Hierarchy下新建Panal(把Canvas的模式射程WorldSpace可修改Canvas的大小),拖动到合适的大小并设置为center(不按shift 或 alt),方便移动。将合适的素材拖入image source,并把透明度拉到最右,image type选为tiled。