- 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
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