Страница 1 из 1

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

СообщениеДобавлено: 26 июн 2018, 15:28
HAYT
Все объекты, которые имеют 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);

}


}














}

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

СообщениеДобавлено: 26 июн 2018, 22:26
seaman
if (!obj.GetComponent<Rigidbody> () == null )

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

СообщениеДобавлено: 27 июн 2018, 09:53
IDoNotExist
GetComponent<Rigidbody> () - с коллайдера это в принципе не правильный подход, так как коллайдер может быть дочерним.
Collider.attachedRigidbody - это более правильный подход.