Удаление клона префаба

У меня проблемка, пишу Флеппи берд, и хочу, что бъекты, которые остались сзади удалялись, написал такой скрипт:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class destoyer : MonoBehaviour
{
    public GameObject Tube;
    void Update()
    {
        if (GameObject.Find(name).transform.position.x - GameObject.Find("bird").transform.position.x < -20) Destroy(this);;
    }
}

Но удаляется не один конкретный клон, а сразу все.


Ответы (1 шт):

Автор решения: Yaroslav
public class BlockManager : MonoBehaviour {

    [SerializeField] private GameObject _blockTemplate;
    private List<Transform> _blocks;

    private void Awake () {
        _blocks = new List<Transform>();
    }

    private void Update () {
        foreach (Transform block in _blocks)
            if (block.localPosition.x < xxx) {
                Destroy(block.gameObject);
                _blocks.Remove(block);                    
                break;
            }
    }

    public void Spawn () {
        GameObject NewBlock = Instantiate(_blockTemplate);
        _blocks.Add(NewBlock.transform);
    }
}
→ Ссылка