Я предполагаю, что "EnemyHeart5" - это GameObject внутри Enemy как дочерний игровой объект. Правильно?
Проблема в том, что когда происходит столкновение, он распознает игровой объект «Враг» и не имеет доступа к «Врагу5» для его отключения. Я бы посоветовал вам добавить в сценарий простой сценарий EnemyManager, который управляет вашим игровым объектом, связанным со здоровьем и здоровьем врага (ie. EnemyHearts, который вы отображаете). Когда происходит столкновение, получите доступ к этому компоненту EnemyManager и измените значение здоровья.
void OnCollisionEnter2D(Collision2D col){
if(col.gameObject.tag == "Enemy"){
col.gameObject.GetComponent<EnemyManager>().health =-1;
}
Теперь, в методе обновления EnemyManager вы проверяете значение здоровья и отключаете компонент EnemyHealth5.
Также используйте «тег» в столкновении вместо «имени». Имя будет создавать проблемы, когда у вас есть несколько врагов в игре. Убедитесь, что вы добавили тег во вражеский игровой объект, если вы его используете.
Надеюсь, это поможет, дайте мне знать, как это происходит.