c# - Unity碰撞删除然后添加回来

标签 c# unity-game-engine enums triggers collision-detection

我有一些对象可以在屏幕上滚动并且无休止地滚动。 我想在触摸时删除对象(我得到了那部分)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/

相关文章:

c# - 如何刷新 SqlConnection 的状态?

c# - 检查是否启用了 UserPrincipal

c++ - 此 C++ 代码是否正确(从枚举标识符创建引用)?

c# - DbUpdateException - 当我捕获所有异常时重复键错误未处理

c# - Random.Range(float, float) 无法通过实例引用访问;用类型名称来限定它

unity-game-engine - 如何在NGUI中使用ScrollView中的Button来滚动对象

c# - 团结 : Error Parsing JSON from Remote Source

c++ - 错误 :a nonstatic member reference must be relative to a specific object

快速枚举数据

生日的 C# 数据类型