- Home /
Trying to apply a force on a ball at certain angles but the ball moves back and forth or otherwise moves erratically
When I apply a force on my ball, it just rocks back and forth on its origin until I move to a different angle to apply the force, then it just sorta floats around in seemingly random directions.
rigidbody.AddForce( ( Mathf.Cos(angle) * transform.forward) + (Mathf.Sin(angle) * transform.right) * 2);
I read somewhere to use AddTorque instead of AddForce, and that sorta worked. The only problem with that was the ball would start to spin on itself uncontrollably if you change the angle too fast, or if it hit a wall, it would at times just stop accepting any sort of user input.
Any advice on what I can do to fix this?
Answer by prototype7 · Feb 20, 2013 at 09:16 AM
You would like to adjust your torque parameter in the inspector to find the one you need, and to make those things easier add this parameters.
public float angDrag;
public float spinForce;
public float maxAngVel;
void FixedUpdate()
{
rigidbody.angularDrag = angDrag;
rigidbody.maxAngularVelocity = maxAngVel;
rigidbody.AddTorque(0,10 * spinForce,0);
if (Input.GetMouseButtonDown(0))
{
this.rigidbody.AddForceAtPosition(Vector3.right * 1000, transform.position);
}
}
Play the game and adjust angDrag, spinForce, maxAngVel in the inspector
Your answer
Follow this Question
Related Questions
AddTorque() doesn't work when also using AddForce() 1 Answer
Ball Rotating Help 0 Answers
How to make a Vector with the same angle as a certain object? 1 Answer
About Forces and Time.deltaTime 3 Answers
Add Force without Rotation 2 Answers