我想在数组中实例化新的预制件,并在用户单击下一个按钮或上一个按钮时删除旧的预制件。
我的游戏对象预制阵列是这样的:
public GameObject[] prefabMoles = new GameObject[3];
GameObject[] moles = new GameObject[3];
void Start () {
for(int i = 0; i < prefabMoles.Length; i++)
{
moles[i] = (GameObject) GameObject.Instantiate(prefabMoles[i], new Vector3((i-1)*5, 0, 0), Quaternion.identity);
}
}
所以现在我想在画布上添加一个按钮,它将是下一个字符,而上一个将返回数组中的一个数字。
例如: 我有Moles数组,并且实例化了moles [2]; 在单击下一个按钮时,我想销毁痣[2]并实例化痣[3]。
当我们在痣上[3]并单击上一步时,必须销毁痣[3]并实例化痣[2]。
产生新的效果会很棒,但是没关系。 然后,当实例化新的按钮时,必须弹出按钮以进行解锁或选择是否解锁字符。
如果可以的话,非常感谢社区的帮助。
答案 0 :(得分:1)
如果您要使按钮创建一个新按钮并销毁旧按钮,则可以执行此功能,可以将其添加到按钮操作中。
它看起来像:
int currentIndex = 0;
GameObject currentObject;
void Start()
{
//Instantiate initial object
currentObject = Instantiate(Moles[currentIndex]);
}
public void Previous()
{
Destroy(currentObject);
currentIndex --;
currentIndex = currentIndex < 0 ? Moles.Length : currentIndex;
currentObject = Instantiate(Moles[currentIndex]);
SpawnEffects();
}
public void Next()
{
Destroy(currentObject);
currentIndex ++;
currentIndex = currentIndex > Moles.Length ? 0 : currentIndex;
currentObject = Instantiate(Moles[currentIndex]);
SpawnEffects();
}
void SpawnEffects()
{
//put your desired Effects
}
基本上,您要跟踪已创建的内容以及要制作的下一个项目。