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

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

今天就来说一下怎么添加物品到背包,首先你得做好一个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个预制体  ,下面是运行结果

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

猜你喜欢

转载自blog.csdn.net/Optimistic_lx/article/details/129461012