- Home /
Using Physics.gravity to accelerate an object
Rigidbodies are affected by the Physics.gravity. I want my object to be affected the same as the rigidbodies.
Ive tried
_VerticalSpeed+=Physics.gravity*Time.deltaTime;
But that accelerates the object way too fast.
Edit: I think I've figured it out. Because it's accelerating in meters per second per second. It needs to be.
Physics.gravity * Time.deltaTime * Time.deltaTime.
That looks correct anyway.
The drag on my other rigid bodies are set to 0, but my object accelerates around 50 times faster.
Answer by ScroodgeM · Aug 07, 2012 at 08:19 PM
using UnityEngine; using System.Collections; public class RigidbodySpeedMonitor : MonoBehaviour { Vector3 manualSpeed = Vector3.zero; void Update() { manualSpeed += Physics.gravity * Time.deltaTime; } void OnGUI() { GUI.Label(new Rect(5, 5, 100, 30), rigidbody.velocity.ToString()); GUI.Label(new Rect(5, 35, 100, 30), manualSpeed.ToString()); } }
attach this script to any object with RB and gravity enabled. note, that 'manualSpeed' and 'rigidbody.velocity' are same.
your object fall incorrect rather because you aplly a speed incorrect. for example, adding speed every Update instead of adding Speed*Time.deltaTime
Answer by Muuskii · Aug 07, 2012 at 03:55 PM
This is just a guess but Time.fixedDeltaTime might work better. I don't see why it should, but there's no harm in trying right?
It shouldn't make a difference, and depending on where this code is placed it could have undesired consequences.
For reading the delta time it is recommended to use Time.deltaTime ins$$anonymous$$d because it automatically returns the right delta time if you are inside a FixedUpdate function or Update function. - From the link you posted.
Answer by Sundar · Aug 07, 2012 at 04:31 PM
Instead try
public float accelerate = 2.0f;
_VerticalSpeed = Physics.gravity Time.deltaTime accelerate;
adjust accelerate value in inspector until you get your desired speed.
I've done something similar already, but Id rather not have to set another variable.
Your answer
![](https://koobas.hobune.stream/wayback/20220613075320im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Turret floats away and pushes everything away from it 2 Answers
How to change use transform.LookAt to make the bottom of an object look at something? 0 Answers
Find nearest object using Physics.OverlapSphere 2 Answers
TriggerEnter, useGravity, Cubes are not falling down 3 Answers
Moving object along its own axis 2 Answers