Проблема с тригерами
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 действие не происходило, не смотря на то что в триггер входят другие объекты ,но фигня в том что как только в тригерр входят другие объекты он срабатывает(((
Сообщение Здравствуйте,мне нужна помощь с тригерами! Мне бы хотелось узнать,как проверять кто находится в тригере! Я использовал Код
void OnTriggerStay(Collider all) { for(int i=0; i<Sharps.Length; i++) { if(!all.CompareTag("CanBeRigidbody")) { Sharps[i].gameObject.AddComponent<Rigidbody>(); } } } }
Тут проблема такая,мне нужно что бы пока в триггере находятся объекты с тэгом CanBeRigidbody действие не происходило, не смотря на то что в триггер входят другие объекты ,но фигня в том что как только в тригерр входят другие объекты он срабатывает((( Автор - 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