Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проблема с кодом в UNITY

Межголоктический разум Ученик (193), на голосовании 5 месяцев назад
только начинаю изучать и вот проблема возникла.
При соприкосновении объекта с тегом Empty он не уничтожается, почему? хотя и ошибок не выдаёт

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class EmptyDestroy : MonoBehaviour
{


private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Empty")
{
Destroy(gameObject);
Debug.Log("USPEH!");
}
}


}
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157212) 6 месяцев назад
Проверь, включен ли у объекта, с которым соприкасается, компонент Collider и установлен ли у него флаг "Is Trigger". Если это не так, Unity не сможет засечь событие OnTriggerEnter.
Межголоктический разумУченик (193) 6 месяцев назад
Да, флажок на месте. но всё равно не работает(объект проходить насквозь)
Terel Профи (866) 6 месяцев назад
Тэг установлен?
Попробуйте
if(other.gameObject.CompareTag("Empty"))
Mr. Miller Мастер (1127) 6 месяцев назад
Проверьте, что у обоих объектов (уничтожаемого и того, который имеет тег "Empty") есть компоненты Collider и что один из них имеет компонент Rigidbody. Для того чтобы событие OnTriggerEnter сработало, хотя бы у одного объекта должен быть Rigidbody, и у обоих объектов должны быть Collider'ы, установленные как Trigger.

Убедитесь, что скрипт EmptyDestroy прикреплен к объекту, который вы хотите уничтожить, и что этот объект активен в иерархии сцены.

И проверь, есть ли вообще вызов триггера.

 private void OnTriggerEnter(Collider other)  
{
Debug.Log("OnTriggerEnter called with: " + other.gameObject.name);
if (other.gameObject.tag == "Empty")
{
Destroy(gameObject);
Debug.Log("USPEH!");
}
}
Похожие вопросы