Бесконечный раннер в Unity

У меня есть проект, в котором я должен создать бесконечный раннер в единстве. Проблема, с которой я столкнулся, заключается в аспекте столкновения в игре, когда сфера и один из объектов сталкиваются. Я хочу, чтобы сфера была уничтожена. Это код, который у меня есть для него:

private void OnCollisionEnter(Collision other)
{
    if (other.gameObject.tag == "lethal")
    {
        Destroy(gameObject);
    }                      
}

Я пометил объекты в игре как lethal. Проблема в том, что даже с этим кодом сфера при столкновении не разрушается, а является просто препятствием, которое останавливает мяч, а не уничтожает его.

Любая помощь? не уверен, что я делаю неправильно

Насчет второй части и препятствия, ваш коллайдер - триггер?

Johnny 14.03.2019 08:27

может Destroy(other.gameObject);?

Aemyl 14.03.2019 08:27

Не уверен, что это повлияет на вашу проблему, но просто небольшой комментарий. Вы не должны использовать == для сравнения типов строк, вместо этого используйте: other.gameObject.tag.equals("lethal")

Niklas7 14.03.2019 08:38

@Niklas7 На самом деле в C# они работают одинаково. В Java они работают по-разному :)

Morasiu 14.03.2019 09:01

@Nirasiu, черт возьми, Java был моим основным языком, поэтому я просто придерживался этой теории, ха-ха. Но спасибо теперь я знаю

Niklas7 14.03.2019 09:04

Вы должны использовать CompareTag(), это намного эффективнее

Jichael 14.03.2019 09:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
223
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Отключить физику между ними. Если ваша игра лагает и разрушение происходит медленно, ваш "бегун" будет этим обеспокоен.
  • Вместо коллайдера используйте ontriggerentered
  • Не используйте сравнение строк с "==", вместо этого используйте equals или CompareTag, как предложил @Jichael.

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

Другие вопросы по теме