1-ый работает как основной, и там выполняется определенный код, этот определенный код это спавн объекта,
Значение этой переменной приходит уже от 2-го скрипта. 2 скрипт лежит на объектах, которые заспавнил 1-ый скрипт, он служит как обработчик события OnTriggerEnter2D. Как только это событие случается, то есть объект сталкивается, он передает значение переменной error, то есть true, и соответственно 1 скрипт после спавна этого объекта, должен будет его сразу же удалить
Допустим 1-скрипт отвечает за стрельбу из лука, который стреляет сразу 3 стрелами. И ты хочешь, чтобы каждая стрела удалялась после того, как чего-то коснётся и при этом в мире не могло бы находиться больше n количества стрел одновременно.
Тогда:
При спавне стрелы вешаешь на неё 2-й скрипт, внутри котого будет функция OnTriggerEnter2D. После того, как стрела чего-то коснётся, функция вызовется и, обратясь с скрипту 1, удалит себя из буфера.
А для ограничения количества стрел в мире просто проверяем размер буффера и не даём игроку стрелять, если он заполнен.