Unity3D 游戏开发:制作游戏背包 根据数据显示图片和数量(25)

162 阅读2分钟

一、开发操作

1、修改Slat_Bag按钮的预制件(Prefabs)

1)、修改Button组件的Navigation改为None

image.png

2)、将配色方案:Disabled Color的透明度改为255

image.png

image.png

二、脚本编程

1、Slot UI.cs文件

using UnityEngine;
using UnityEngine.UI;
using TMPro;

namespace MFarm.Iventory
{
    public class SlotUI : MonoBehaviour
    {
        [Header("组件的获取")]
        [SerializeField] private Image slotImage;

        [SerializeField] private TextMeshProUGUI amountText;

        [SerializeField] private Image slotHightlight;

        [SerializeField] private Button button;

        [Header("格子类型")]
        public SlotType slotType;

        public bool isSelected;


        //物品信息
        public ItemDetails itemDetails;

        public int itemAmount;
        private void Start()
        {
            isSelected = false;
            if (itemDetails.itemID == 0)
            {
                UpdateEmptySlot();
            }
        }
        public void UpdataSlot(ItemDetails item, int amount)
        {
            itemDetails = item;
            slotImage.sprite = item.itemIcon;
            itemAmount = amount;
            amountText.text = amount.ToString();
            button.interactable = true;
        }
        public void UpdateEmptySlot()
        {
            if (isSelected)
            {
                isSelected = false;
            }
            slotImage.enabled = false;
            amountText.text = string.Empty;
            button.interactable = false;
        }

    }
}


这段代码定义了一个SlotUI类,其中包含了一些用于显示物品格子的UI组件(Image、TextMeshProUGUI、Button等),以及管理物品格子相关状态的变量(isSelected、itemDetails、itemAmount等)。根据注释,该类的功能包括:

  1. 在Start方法中,如果物品ID为0,则更新为空的格子状态。
  2. 在UpdataSlot方法中,更新物品格子的信息,包括物品细节、数量、图标等。
  3. 在UpdateEmptySlot方法中,更新为空的格子状态,包括禁用图标、清空数量和禁用按钮等。

可以看出,该类主要负责管理物品格子的UI显示和状态,将物品详细信息、数量等保存在变量中,并提供了一些方法来更新这些信息。如果有需要,可以在该类基础上扩展出更多的功能,如添加点击事件等。 2、Enums.cs文件

格子类型

public enum SlotType
{ 
    Bag,Box,Shop
}

这段代码定义了一个枚举类型SlotType,包含了三个枚举值:Bag、Box、Shop。该枚举类型可以用于标识物品格子的类型,方便在不同情况下进行区分和处理。例如,在角色背包中显示的物品格子类型为Bag,在商店界面中显示的物品格子类型为Shop等。可以通过在SlotUI类中添加一个slotType变量,并在创建物品格子时指定其类型来实现这一功能。

三、脚本逻辑

阅读更多作者文章:

未完待续。。。 # Unity3D 游戏开发:制作游戏背包 游戏界面背包内的UI(24)