so ive built a tornado and when it comes in contect with a house i built in the game it destroyes it and causes all the debris to be pulled in and rotate around it. this works great when making a small tornado as it releases the debris. but when i build a large tornado it just holds on to all the debris and never lets go of it. to make my game more realistic i need the tornado to release the debris, how can i do this? btw my tornado is made up of multiple capsul colliders leading to the center of the tornado. the pull force and rotation speed increace from the outermost collider to the center collider. the center collider has a repelling force so all the debris doesent just collect at the center of the tornado and instead just rotate around it from that distance. but i really need the tornado to release the gameobjects it picks up so it doesent just have everything inside it.
here is the script i attach to each collider in the tornado to give it pull and rotational force. if you want a better idea on how my colliders are put in the tornado watch this
How to Make A Tornado Effect in Unity - YouTube private GameObject PullOBJ;
public float PullSpeed;
public float objRotationSpeed;
public float rotation;
public float PullStrength;
public void OnTriggerStay (Collider coll)
{
if (coll.gameObject.tag == "Untagged") {
PullOBJ = coll.gameObject;
PullOBJ.transform.position = Vector3.MoveTowards (PullOBJ.transform.position, this.transform.position, PullSpeed * Time.deltaTime);
PullOBJ.transform.RotateAround (transform.position, Vector3.up, Time.deltaTime * rotation);
PullOBJ.transform.Rotate (Vector3.left, 45 * Time.deltaTime * objRotationSpeed);
}
}