添加物品到背包(记录学习)

本文介绍了在游戏开发中创建背包系统的过程,包括构建UI背包界面,设置物品图片和数量文本框,以及使用Unity3D的克隆功能将预制体(物品)动态添加到背包格子中。代码示例展示了如何在特定条件下将物品放置到空格子,并更新物品数量。
摘要由CSDN通过智能技术生成

在游戏开发过程中,游戏都有一个必不可少的东西,就是背包。

今天就来说一下怎么添加物品到背包,首先你得做好一个UI背包界面

我这里就随手搭了一个简单的,还有要记得添加这个组件哦,调节好位置

 

先在UI界面做好你需要添加的物品图片(设置好数量文本框,信息提示文本框为子物体),然后把这张图片设置为预制体添加Canvas Group组件。

好啦设置好了,就是代码段了

public class Clone : MonoBehaviour {
	private GameObject[] ge;//背包格子
	public GameObject[] gameObjects1;//3个预制体								
	void Start()
	{
		ge = GameObject.FindGameObjectsWithTag("bk");//把背包格子存进数组
	}
	
	void Update()
	{
		if (Input.GetKeyDown(KeyCode.F))
		{
            Cloness();
        }
	}
	void Cloness()
	{
        bool bo = true;
        int a = Random.Range(0, gameObjects1.Length);//在3个预制体中随机克隆一个
        GameObject go = Instantiate(gameObjects1[a]);
        for (int i = 0; i < ge.Length; i++)
        {
            if (ge[i].transform.childCount > 0 && go.name.Equals(ge[i].transform.GetChild(0).name))//判断格子没有子物体
            {
                bo=false;
                //相同的情况下 找到他的相对应格子的子级图片,图片的子级text文本让文本值+1
                int b = int.Parse(ge[i].transform.GetChild(0).GetChild(0).GetComponent<Text>().text);
                ge[i].transform.GetChild(0).GetChild(0).GetComponent<Text>().text = (b + 1).ToString();
            }         
        }
        if(bo)//当你克隆的对象  格子的子级没有的时候
        {
            for (int i = 0; i < ge.Length; i++)
            {
                //格子的子物体为空
                if (ge[i].transform.childCount == 0)
                {
                    //克隆它并设为格子的子级
                    go.transform.SetParent(ge[i].transform);
                    go.transform.localPosition = Vector3.zero;//位置居中
                    break;
                }
            }
        }
    }
}

 我这里只做了3个预制体  ,下面是运行结果

 这里的物品可以实现拖拽交换和图片居中,脚本在上一个博客哦;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值