Не работает Overap Sphere

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Не работает Overap Sphere

Сообщение HAYT 26 июн 2018, 15:28

Все объекты, которые имеют RigidBody должны добавляться в лист DrObj но, этого не происходит. Не знаю почему, вот код:

if (Distance > 30 & !psy & Psy_again_t >= 0) {

/////////////////////////////////////////////////////////////////////
Collider[] collider = Physics.OverlapSphere (Target.transform.position, 20f);

Psy_again_t = -6f;
Psy_drop_t_drop = -2f;

foreach (Collider obj in collider){



if (!obj.GetComponent<Rigidbody> () == null ){

DrObj.Add (obj.transform);
Psy_drop_t_drop = -2f;

}


}




if(Psy_drop_t_drop < 0){

foreach (Transform obj2 in DrObj){

obj2.GetComponent<Rigidbody> ().AddForce(Vector3.up * (0.1f * Time.deltaTime));

}



}



if (Psy_drop_t_drop >= 0){


int i = -1;

foreach (Transform obj3 in DrObj){

obj3.GetComponent<Rigidbody> ().AddForce((Target.transform.position - transform.position) * 4);
i++;
DrObj.RemoveAt (i);

}


}














}
HAYT
UNец
 
Сообщения: 30
Зарегистрирован: 25 мар 2018, 21:41

Re: Не работает Overap Sphere

Сообщение seaman 26 июн 2018, 22:26

if (!obj.GetComponent<Rigidbody> () == null )
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Не работает Overap Sphere

Сообщение IDoNotExist 27 июн 2018, 09:53

GetComponent<Rigidbody> () - с коллайдера это в принципе не правильный подход, так как коллайдер может быть дочерним.
Collider.attachedRigidbody - это более правильный подход.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 15