我有一些对象可以在屏幕上滚动并且无休止地滚动。
我想在触摸时删除对象(我得到了那部分)SetActive/Destroy。
我正在尝试将对象添加回场景,以便可以重新使用它们。
我该如何解决这个问题?
if (col.gameObject.tag == "Coin"){
coinCount++;
coins.text = coinCount.ToString();
// Save Coins
PlayerPrefs.SetInt("Coins", coinCount);
col.gameObject.SetActive(false);
}
上面的代码位于 -> OnTriggerEnter2D(Collider2D){}
// Waits Seconds to put coins in correct spot
IEnumerator afterSeconds(GameObject x)
{
//x.SetActive(false);
yield return new WaitForSeconds(5f);//5f
//x.SetActive(true);
}
最佳答案
您可以使用 MonoBehavior.Invoke()
并将类变量设置为碰撞器,但如果在重新启用步骤之前发生碰撞,这会很困惑。相反,我会使用协程
。
if (col.gameObject.tag == "Coin"){
coinCount++;
coins.text = coinCount.ToString();
// Save Coins
PlayerPrefs.SetInt("Coins", coinCount);
StartCoroutine(afterSeconds(col.gameObject)); //hide, delay, show
}
然后:
// Waits Seconds to put coins in correct spot
IEnumerator afterSeconds(GameObject x)
{
x.SetActive(false);
yield return new WaitForSeconds(5f);
x.SetActive(true);
}
关于c# - Unity碰撞删除然后添加回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51144282/