- Home /
My objects are falling to slowly when a rigidbody is attached, cab you help?
When i attach a Rigidbody to an object, it falls at a very slow speed and no matter how much I increase the mass it falls at exactly the same speed every time.
it falls about 75% slow than this Unity tutorial
https://youtu.be/WTGcs10Sj34?t=40
There is no code attached and the rigidbody has the default settings.
What can the be problem?
I've checked older Unity files and the objects fall at the right speed, i just have no idea why they don't in my current project
What is your friction/drag set to?
What is your gravity set to? Edit -> Project Settings -> Physics Settings (or Physics2D Settings)
Do you have a floor or other object that could be causing friction/drag resistance?
gravity is set to the deafult x 0, y -9.81, z0
angular drag is default 0.05
I have a plane but i included 1 in the other unity test file i made and had no problems with it.
I don't want to have to start again if all i have to do it tick a check box.
Answer by lowhearted · Jun 30, 2018 at 05:32 PM
There are a lot of misconceptions here. Do not do the following:
Change the force of gravity in your scene.
Add an extra force in code.
Change the mass.
~A very long time ago, Galileo found out mass doesn't affect freefall time. I am very confident the problem with your scene is the scaling. Look at this gif: These objects are all the same except in that they are larger than each other. Keep in mind that, in Unity, 1 unit = 1 meter. Scale everything accordingly. If everything is scaled properly, I promise everything will fall realistically. If you have an object with a very large size, it will fall extremely slowly.
I'm glad someone said this its exactly what I was going to answer with when I saw the title of the question.
Answer by bloodthirst69 · Jul 28, 2018 at 06:38 PM
i think its a coding mistake , you're setting the rididbody.velocity.y = 0 in the code somewhere, and that makes the jumping fast (since its a force set from code) but the falling slow since its not set from code , the physics update get a few milliseconds between each Update frame to do its physics thingy but it get stopped once the velocity.y = 0 happens , or atleast thats the problem i had ...
Answer by Salanyel · Jul 27, 2017 at 02:48 PM
Are you sure that no other script are running elsewhere and impacting your falling speed ?
Are you sure you didn't alterate the time flow (Project settings/Time) ?
Maybe you have modified the weight of your object or the gravity of the app ?
until yesterday there were no scripts written and this problem has been around since before then.
Now there are literally no scripts attached to the object it is a brand newly created 3D object with a rigidbody attached and it falls at the same rate if the mass is set to 1 or 5,000,000. drag is set to 0
I've not touched the Time flow and the current settings are the default settings.
$$anonymous$$ass doesn't affect the acceleration of a falling object so it can't really be the issue if gravity is the only force affecting the object.
What about the scale of everything in the scene? If a root object is scaled, its child objects migh appear to be falling slower in relation to their size.
I got a unity cube and a asset i made for my project, in a new unity project file and copied my asset 3 times and each 1 is 50% smaller that the previous 1 then i put them all at the same height as the unity cube and run the program and all 4 objects fell at exactly the same correct rate of speed
now when i did that in my project file they fell together, all different sizes, but at the slower rate of speed.
I haven't made any structural changes in my project file, just imported assets i made thats all. so fuck know why this is acting up. Ive ignored it because it wasn't an issue at the time, now it is.
Answer by rrabassa · Feb 13, 2019 at 04:17 PM
I'm having the same problem. I've narrowed it down to the Animator - when I disable the Animator component, the object falls as expected... not sure why
For me the object falls as expected specifically when I disable "apply Root $$anonymous$$otion" in the Animator component
Answer by N-8-D-e-v · Jun 05, 2020 at 06:48 PM
I had an issue like this, I was doing some first person rigidbody-based movement, and this was my code
void Update()
{
float hMove = Input.GetAxisRaw("Horizontal");
float vMove = Input.GetAxisRaw("Vertical");
MoveDir = (hMove * transform.right + vMove * transform.forward).normalized;
}
void FixedUpdate()
{
Move();
}
void Move()
{
rb.velocity = MoveDir * speed * Time.deltaTime;
}
and it was working all well and fine, until I started to the jumping portion of the script, the player fell like a feather. I hadn't changed any gravity or mass or anything like that, but what was causing the problem is that when I set rb.velocity to MoveDir, MoveDir.y = 0, so every fixed update the object was barely falling. So to fix this issue I did this
void Update() { float hMove = Input.GetAxisRaw("Horizontal"); float vMove = Input.GetAxisRaw("Vertical");
MoveDir = (hMove * transform.right + vMove * transform.forward + new Vector3(0, rb.velocity.y, 0)).normalized;
// i gave MoveDir a y value of whatever the y velocity was at the time, so it was essentially unaffected.
}
void FixedUpdate()
{
Move();
}
void Move()
{
rb.velocity = MoveDir * speed * Time.deltaTime;
}
Hope this helps!