У меня есть проект, в котором я должен создать бесконечный раннер в единстве. Проблема, с которой я столкнулся, заключается в аспекте столкновения в игре, когда сфера и один из объектов сталкиваются. Я хочу, чтобы сфера была уничтожена. Это код, который у меня есть для него:
private void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "lethal")
{
Destroy(gameObject);
}
}
Я пометил объекты в игре как lethal. Проблема в том, что даже с этим кодом сфера при столкновении не разрушается, а является просто препятствием, которое останавливает мяч, а не уничтожает его.
Любая помощь? не уверен, что я делаю неправильно
может Destroy(other.gameObject);?
Не уверен, что это повлияет на вашу проблему, но просто небольшой комментарий. Вы не должны использовать == для сравнения типов строк, вместо этого используйте: other.gameObject.tag.equals("lethal")
@Niklas7 На самом деле в C# они работают одинаково. В Java они работают по-разному :)
@Nirasiu, черт возьми, Java был моим основным языком, поэтому я просто придерживался этой теории, ха-ха. Но спасибо теперь я знаю
Вы должны использовать CompareTag(), это намного эффективнее





И если вы действительно хотите использовать физику, сделайте дочерний объект для вашего бегуна, и это должно вызвать столкновение вместо вашего бегуна. И дайте тег этому дочернему объекту
Насчет второй части и препятствия, ваш коллайдер - триггер?