自用笔记 背包系统

准备

前提的知识:
——ugui
——unity框架
——jason配置表
——file文件存储和读取

需求分析:
——背包中显示玩家拥有的物品信息

——需要显示信息就需要读取数据—数据从哪里来?
配置表(JASON)+玩家信息(文件读取file , JASON)

——获取数据到面板上(UGUI , c#的逻辑)

基本知识点:
1.Application.persistentDataPath:运行产生一个目录
2.使用JsonUtility读写Json文件
3.ui除了用射线来监听鼠标进入之外,还有EventTrigger

一、拼面板

这里的主题是为了讲背包,所以对于这里不再赘述

不过要注意几个小技巧:
1.将所有ui界面做成预制体,使用时直接用代码调用(包括Canvas和EventSystem)
2.将Canvas制作成预制体之前,注意UI的分辨率的问题:canvas scaler
3.可以先做出一个永久在屏幕前的界面(也就是主界面):mainpanel

此时我们至少有两个panel:主面板+背包
并且每个panel都会有一个相应名字的脚本,并且还有一个唯一的main脚本

二、开始时显示主面板

main-可以挂在相机:

void start()
{
   
UIManager.GetInstance().ShowPanel<mainpannal>("mainpanal", E_UI_Layer.Bot);
}

三、实现背包的开启与关闭

开启:
mainpanel:

void Start()
    {
   
        
        GetControl<Button>("beibao").onClick.AddListener(() =>
        {
   
            
            UIManager.GetInstance().ShowPanel<bagpannal>("bagpannal");
        });
    }

关闭:
bagpanel:

 void Start()
    {
   
        GetControl<Button>("buttonclose").onClick.AddListener(() =>
        {
   
            UIManager.GetInstance().HidePanel("bagpannal");
        });
    }

四、道具信息数据设计、读取

1.新建excel文件,配置基础道具信息
在这里插入图片描述
2.用在线json工具,将excel转json
在这里插入图片描述

3.稍微修改json配置(添加info数组)
后后面复制上上述json,注意最后使用格式化校验

4.向unity传入道具json信息
打开unity建立【json】文件夹-右键show in Explorer
打开路径后新建【iteminfo】的txt文件,并把上面的json信息复制后,点击另存为,编码选择UTF-8

此时我们在unity里json文件夹下存在我们刚才另存的iteminfo的文件了!

5.读取道具信息

新建【gamedatamgr】的脚本,放游戏里各种数据

这里可以把gamedatamgr拆分为几个部分来慢慢阅读

数据的获取:
首先,看数据关系图
在这里插入图片描述iteminfos(int,item)

items(class):放多个item

player(calss):玩家基础信息和默认的物品

[先从txt文件里获取信息,将信息存储iteminfos,并且提供保存信息的功能save]

之后来看具体代码的实现

//存放道具的信息
public class Item
{
   
    public int id;
    public string name;
    public string icon;
    public int type;
    public int price;
    public string tips;
}

存储多个道具

public class Items
{
   
    public List<Item> info;
}
// 玩家拥有道具的基础信息
//这个特性可以使json被读取的时候 能被识别
[System.Serializable]
public class ItemInfo
{
   
    public int id;
    public int num;
}
    //创建个字典 里面按照数字放不同的道具 每个道具又有不同的信息(item)
    private Dictionary<int, Item> iteminfos = new Dictionary<int
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值