В конце сопрограммы измените Destroy(this);
на Destroy(gameObject);
Destroy(this);
, уничтожив компонент PowerUp
.в то время как Destroy(gameObject);
уничтожает все дерево.
Также OnTriggerEnter2D
может вызываться несколько раз подряд, вызывая бесконечные экземпляры.Вы можете добавить ограничение до StartCoroutine
, чтобы предотвратить это.
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
if (!flag)
StartCoroutine (Pickup(collision));
}
}
IEnumerator Pickup(Collider2D player)
{
flag = true;