Unity背包功能完整实现

本文详细介绍了在Unity中实现背包功能的过程,包括UI布局、物品类定义、界面更新和事件处理。通过创建BagClass和BagManager类管理物品信息,利用Unity的UI系统展示背包中的物品,并实现了物品的点击事件来显示详细信息。代码示例展示了如何解析配置文件,填充物品数据,以及进行物品的出售操作。
摘要由CSDN通过智能技术生成

Scene面版下的GameObjects及脚本挂载的位置:

Main Camera
Directional Light
UI root
 Camera
 Center
  UIWindow_Bag  (UIWindowBag.cs)
   BGParent
    BG_1
    BG_2
   GoodsBox
    Grid
     sprite(+预设体(BagItem.cs)BG(sprite);Color(sprite);Icon(sprite);Num(label))
     sprite
     sprite
     sprite
     sprite
     sprite
     sprite
     sprite
   Coin
    Coin_BG
    Label
   SaleBtn
    BG
    Label
   UIInformation  (UIInformation.cs)
    BG
    Name
     Label
    Color
     Label
    Level
     Label
    Price
     Label
    Message
     Label

代码如下:=============================
 BagDemo   (Test.cs)


using UnityEngine;
using System.Collections;

//物品类型
public enum GoodsType 
{
    Equip, //表示装备
    Drug   //表示药水
}

//物品的品质
public enum GoodsColor 
{
    BaiSe,
    LvSe,
    LanSe,
    ZiSe,
    ChengSe
}

//物品类
public class BagClass{
    public int id; //物品ID
    public string icon; //物品图片名称
    public string name; //物品名称
    public GoodsType type; //物品类型
    public GoodsColor color; //物品品质
    public int count; //物品数量
    public int goodsLevel; //物品等级
    public string message; //物品信息
    public int price; //价格
    public bool isWear; //是否穿戴

}

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

//控制整个界面的显示
public class UIWindowBag : MonoBehaviour {
    //所有格子的父节点
    private Transform boxParent;
    //出售物品的按钮
    private Transform saleBtn;
    //金币
    private Transform coinLabel;
    //显示物品的预设体
    private GameObject goods;

    //程序一开始运行时最先执行
    void Awake() 
    {
        Init();

        //给出售按钮添加事件
        EventDelegate.Add(saleBtn.GetComponent<UIButton>().onClick,
            () => {
                BagManager.GetInstance().SaleGoods();
                //更新前先删除已有的物品
                OnDisable();
                //更新物品
                BagUpdate();
            });

    }
    //窗口被激活时调用
    void OnEnable() 
    {
        BagUpdate();
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star_MengMeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值