No se puede hacer que AddExplosionForce funcione con los hijos de un objeto del juego.
Tengo un objeto de juego que tiene varios hijos. Estoy tratando de separar los hijos del padre, y aplicar una fuerza explosiva a cada uno basado en su ubicación en el padre. Los hijos se separan sin problemas, y el padre se elimina (verifiqué la escena mientras se ejecutaba el juego). Verifiqué cuáles de los objetos de juego están cerca de la posición de la explosión, y se imprimen bien. Simplemente no puedo hacer que la fuerza explosiva funcione en ellos. Cada uno de los hijos tiene un Rigidbody (establecido en el prefab), y agregué un box collider en el código. Intenté con un radio de explosión más grande, pero eso tampoco ayudó.
private void OnCollisionEnter(Collision collision)
{
Vector3 pos = transform.position;
for(int i=0;i<transform.childcount;) {="" transform="" childtransform="transform.GetChild(0);" debug.log("c"+childtransform.transform.position);="" childtransform.parent="null;"></transform.childcount;)><boxcollider>();
}
Collider[] colliders = Physics.OverlapSphere(pos, 10);
foreach (Collider childGameObject in colliders)
{
Debug.Log(childGameObject.name);
childGameObject.GetComponent<rigidbody>().AddExplosionForce(10f, pos, 10f, 10f);
//childGameObject.GetComponent<rigidbody>().AddExplosionForce(300f, pos, 300f, 10f);
}
Destroy(gameObject);
}
davy.ai
El código parece estar desprendiendo correctamente a los hijos del padre y agregando un box collider a cada uno de ellos. Sin embargo, parece haber un problema al aplicarles una fuerza explosiva.
Algunas sugerencias para solucionar el problema son las siguientes:
Al verificar sistemáticamente cada uno de estos factores, debería poder aislar el problema y determinar cómo proceder para obtener el efecto de explosión deseado en los hijos.