@PsyDuckbest

Почему не работает CompareTag?

Здравствуйте. Пытаюсь заставить персонажа получать урон от того что он тыкается в шипы, он получает урон дважды, потому что на нем 2 коллайдера висит для разных целей, сам хитбокс персонажа я пометил тегом "Player", а хитбокс шипов тегом "Spike", но у меня не работает CompareTag, что я делаю не так?

Вот код:

private float health = 10f;

    private void OnTriggerEnter(Collider other) {
        if(other.gameObject.CompareTag("Spike") && gameObject.CompareTag("Player")) {
            StartCoroutine(SpikeDMG());
        }
        if(health <= 0)
            Destroy(gameObject);
    }

    IEnumerator SpikeDMG() {
        health -= 5f;
        yield return new WaitForSeconds(0.1f);
    }
  • Вопрос задан
  • 494 просмотра
Решения вопроса 1
@Spartanec33
ты можешь на игроке сделать отдельный пустой объект, который будет содержать, по твоим словам, коллайдер для столкновений, и на эту пустышку кинуть скрипт, который отслеживает касание шипов. В итоге будет считываться только 1 коллайдер, а не как было у тебя 2. Тебе останется только связать 2 скрипта(ну игрока и скрипт реагирования на шипы. чтобы при вставании на шип у игрока вызывался метод получения урона)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы