Проблема с тригерами - Форум Игроделов
Пт, 03 Май 2024, 17:43 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » HELP & FAQ » Проблема с тригерами
Проблема с тригерами
DevoloperДата: Чт, 07 Янв 2016, 22:59 | Сообщение # 1
Нет аватара
 
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте,мне нужна помощь с тригерами! Мне бы хотелось узнать,как проверять кто находится в тригере!
Я использовал
Код

    void OnTriggerStay(Collider all)
    {
  for(int i=0; i<Sharps.Length; i++)
  {
   if(!all.CompareTag("CanBeRigidbody"))
  {
  Sharps[i].gameObject.AddComponent<Rigidbody>();
  }
  }
    }
}

Тут проблема такая,мне нужно что бы пока в триггере находятся объекты с тэгом CanBeRigidbody действие не происходило, не смотря на то что в триггер входят другие объекты ,но фигня в том что как только в тригерр входят другие объекты он срабатывает(((
sad
 
СообщениеЗдравствуйте,мне нужна помощь с тригерами! Мне бы хотелось узнать,как проверять кто находится в тригере!
Я использовал
Код

    void OnTriggerStay(Collider all)
    {
  for(int i=0; i<Sharps.Length; i++)
  {
   if(!all.CompareTag("CanBeRigidbody"))
  {
  Sharps[i].gameObject.AddComponent<Rigidbody>();
  }
  }
    }
}

Тут проблема такая,мне нужно что бы пока в триггере находятся объекты с тэгом CanBeRigidbody действие не происходило, не смотря на то что в триггер входят другие объекты ,но фигня в том что как только в тригерр входят другие объекты он срабатывает(((
sad

Автор - Devoloper
Дата добавления - 07 Янв 2016 в 22:59
ЛевшаДата: Пт, 08 Янв 2016, 05:13 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Триггер здесь не подойдет.
Юзай OverlapSphere.


X.cor.R (Prologue)
 
СообщениеТриггер здесь не подойдет.
Юзай OverlapSphere.

Автор - Левша
Дата добавления - 08 Янв 2016 в 05:13
DevoloperДата: Пт, 08 Янв 2016, 14:58 | Сообщение # 3
Нет аватара
 
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Блин,я юзал уже,но прикол в том, что по форме он мне не подходит! Вообщем у меня есть стенка,состоящая из маленьких кусочков,при взрыве кусочкам дается ригидбоди,но тут проблема в том что если нижний части стенки нет, то верхняя все равно остается и я решил проверять состояние нижней части через триггер(((,и мне нужен куб

Добавлено (08 Янв 2016, 14:54)
---------------------------------------------
Окей,сделал я оверлапом,но как только в сферу попал другой объект действие происходит(

Добавлено (08 Янв 2016, 14:58)
---------------------------------------------

Код

    Collider[] hitColliders = Physics.OverlapSphere (transform.position, Radius1);
  for (int i=0; i<hitColliders.Length; i++)
  {
   //if(hitColliders[i].GetComponent<>())
   //{
   //    hitColliders[i].GetComponent<Propan>().Dead();
   //}
   if (hitColliders[i].CompareTag("CanBeRigidbody"))
   {
    MainObject.gameObject.GetComponent<MainChecker>().b3 = "5";
   }
   else
   {
    MainObject.gameObject.GetComponent<MainChecker>().b3 = "3";
   }
  }
 
СообщениеБлин,я юзал уже,но прикол в том, что по форме он мне не подходит! Вообщем у меня есть стенка,состоящая из маленьких кусочков,при взрыве кусочкам дается ригидбоди,но тут проблема в том что если нижний части стенки нет, то верхняя все равно остается и я решил проверять состояние нижней части через триггер(((,и мне нужен куб

Добавлено (08 Янв 2016, 14:54)
---------------------------------------------
Окей,сделал я оверлапом,но как только в сферу попал другой объект действие происходит(

Добавлено (08 Янв 2016, 14:58)
---------------------------------------------

Код

    Collider[] hitColliders = Physics.OverlapSphere (transform.position, Radius1);
  for (int i=0; i<hitColliders.Length; i++)
  {
   //if(hitColliders[i].GetComponent<>())
   //{
   //    hitColliders[i].GetComponent<Propan>().Dead();
   //}
   if (hitColliders[i].CompareTag("CanBeRigidbody"))
   {
    MainObject.gameObject.GetComponent<MainChecker>().b3 = "5";
   }
   else
   {
    MainObject.gameObject.GetComponent<MainChecker>().b3 = "3";
   }
  }

Автор - Devoloper
Дата добавления - 08 Янв 2016 в 14:58
ЛевшаДата: Пт, 08 Янв 2016, 16:45 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Проверку сделана не правильно... надо примерно так:
Код

            Collider[] hitColliders = Physics.OverlapSphere (transform.position, Radius1);
            bool actionOrder = true;
    for (int i = 0; i < hitColliders.Length; i ++)  {
        if (hitColliders[i].CompareTag("CanBeRigidbody"))  {
            actionOrder = false;
            break;
        }    
    }    
    if (actionOrder)
            MainObject.gameObject.GetComponent<MainChecker>().b3 = "5";  
    else   MainObject.gameObject.GetComponent<MainChecker>().b3 = "3";


X.cor.R (Prologue)
 
СообщениеПроверку сделана не правильно... надо примерно так:
Код

            Collider[] hitColliders = Physics.OverlapSphere (transform.position, Radius1);
            bool actionOrder = true;
    for (int i = 0; i < hitColliders.Length; i ++)  {
        if (hitColliders[i].CompareTag("CanBeRigidbody"))  {
            actionOrder = false;
            break;
        }    
    }    
    if (actionOrder)
            MainObject.gameObject.GetComponent<MainChecker>().b3 = "5";  
    else   MainObject.gameObject.GetComponent<MainChecker>().b3 = "3";

Автор - Левша
Дата добавления - 08 Янв 2016 в 16:45
DevoloperДата: Сб, 09 Янв 2016, 13:13 | Сообщение # 5
Нет аватара
 
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Спасибо!Я немножко подумал и поменял кое-что и все))Спасибо!
 
СообщениеСпасибо!Я немножко подумал и поменял кое-что и все))Спасибо!

Автор - Devoloper
Дата добавления - 09 Янв 2016 в 13:13
Форум Игроделов » UNITY3D » HELP & FAQ » Проблема с тригерами
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024