- Home /
In what way can I calculate a predicted target destination based on force to be added?
I've recently found Drag-Shot Mover v01 - and successfully used the C# version with a couple minor modifications:
dragDistance = Mathf.Clamp((mousePos - transform.position).magnitude, 0, magBase);
// calculate the force vector
if (dragDistance * magMultiplier < 1) dragDistance = 0; // this is to allow for a "no move" buffer close to the object
forceVector = mousePos - transform.position;
forceVector.Normalize();
forceVector *= dragDistance * magMultiplier;
This works mostly well for the project I am building - however, my final goal is to turn this into an arc instead of an impulse applied to the game object. To do so, I need a target for the calculation. What would be the best way to predict where the force is going to send the object?
Answer by DevMerlin · Apr 06, 2016 at 07:37 AM
Well I feel a little stupid - I figured out my target:
Vector3 v = (forceVector / _rigid.mass);
Debug.Log(v + transform.position);
v.y = GameController.Instance.TargetPredictor.transform.position.y;
v.x = -v.x;
v.z = -v.z;
Vector3 DeltaVAdd = transform.position;
DeltaVAdd.y = 0;
GameController.Instance.TargetPredictor.transform.position = v + DeltaVAdd;
With this combination I can predict a landing point - calculating the force / mass for the velocity. The negatives reverse so it actually ends up in the correct position to the dragging force, while the target predictor is just a visual to verify. I can now fire the rigidbody at a target in an arc. that is based on physics instead of existing targets.
Your answer
![](https://koobas.hobune.stream/wayback/20220612074248im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
RigidBody immediately stops after AddForce 1 Answer
Fireing a tank projectile. 1 Answer
Unity Physics On Input Issue? 0 Answers
Restrict two objects from getting too close. 1 Answer
Cannot assign to 'Death' because its a method group 2 Answers