С обновленным вопросом и скриншотами проблема заключается в том, что вы проверяете тег "Готово" , но тег "Готово" GameObject установлен на "Untagged", поэтомуоператор if (col.gameObject.tag == "Finish")
будет не иметь значение true.
У вас есть два варианта:
1 .Выберите «Завершить» GameObject, щелкните тег «Untagged» и создайте новый тег «Finish».Если у вас уже есть этот тег, измените тег GameObject «Finish» с «Untagged» на «Finish», и ваш код if (col.gameObject.tag == "Finish")
должен работать.
2 .Если вы не намеревались использовать тег, просто сравните GameObject по имени вместо тега, просто заменив if (col.gameObject.tag == "Finish")
на if (col.gameObject.name == "Finish")
.
Если ни один из двух приведенных выше вариантов не сработал, то OnCollisionEnter2D
вообще не вызывать.Поставьте Debug.Log
за пределами оператора if
, как показано ниже, и оставьте комментарий о том, есть ли журнал.
void OnCollisionEnter2D(Collision2D col)
{
Debug.Log("Finish: " + col.gameObject.name);
}