/// <summary> /// Selecciona todos los colliders que estan dentro de la esfera que representa el movimiento. /// Carga la lista objetosCandidatos /// </summary> private void selectPotentialColliders(TgcElipsoid characterElipsoid, Vector3 movementVector, List <Collider> colliders) { //Dejar solo los obstáculos que están dentro del radio de movimiento del elipsoide (lo consideramos una esfera, con su mayor radio) var halfMovementVec = Vector3.Multiply(movementVector, 0.5f); movementSphere.setValues( characterElipsoid.Center + halfMovementVec, halfMovementVec.Length() + characterElipsoid.getMaxRadius() ); //Elegir todos los colliders que pasan un test Sphere-Sphere objetosCandidatos.Clear(); foreach (var collider in colliders) { if (collider.Enable && TgcCollisionUtils.testSphereSphere(movementSphere, collider.BoundingSphere)) { objetosCandidatos.Add(collider); } } }