在游戏开发过程中,游戏都有一个必不可少的东西,就是背包。
今天就来说一下怎么添加物品到背包,首先你得做好一个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个预制体 ,下面是运行结果
这里的物品可以实现拖拽交换和图片居中,脚本在上一个博客哦;