- Home /
Setting Horizontal Gravity
I'm trying to make a game where the gravity shifts along the level - like, you pick up an accessory, and the direction your character is pulled by gravity changes. However, I have no idea how to make the gravity work the way I want it to. Like, reversing it is easy - just set the gravity value on the model's rigidbody physics to negative. But how would I make the gravity pull in any other direction?
does this help if I say
player.transfer.position = new Vector3 (0,-1,0);
wrote on the fly maybe it has some errors
simulates gravity?
also you can make whole map a parent and children on it and rotate map
tho I don't know the answer to your Question only workarounds
I'm kind of a beginner here, so I'm not sure what player.transfer.position is or where it's referenced. Can Physics.gravity be edited?
Answer by aldonaletto · Jan 21, 2013 at 10:20 PM
If your character is a Rigidbody, you could just modify the Physics.gravity vector to whatever direction you want. If you want to make the gravity point to the right, for instance, simply assign the new gravity, like this:
Physics.gravity = 9.81 * Vector3.right;
But this will affect all other rigidbodies in the scene as well. If you want to control only the character gravity, set rigidbody.useGravity to false and implement your own gravity with a ConstantForce component - like this (character script):
private var myGravity: ConstantForce;
function SetGravity(g: Vector3){
// calculate the necessary force to produce the desired gravity:
myGravity.force = rigidbody.mass * g;
}
function Start(){
rigidbody.useGravity = false; // forget about physics default gravity
myGravity = gameObject.AddComponent(ConstantForce); // add a ConstantForce component
SetGravity(9.81 * Vector3.down); // set regular gravity
}
When you want to change the gravity direction, call SetGravity:
SetGravity(2.5 * Vector3.left); // set gravity to a low value to the left
Do you know what the default value for Physics.gravity is? Or how I could figure that out?
EDIT: Never $$anonymous$$d, it's essentially bound to be monodirectional, so I'll just use * Physics.gravity.magnitude. Thanks!
Your answer
Follow this Question
Related Questions
Rigidbody2D Grounded 4 Answers
Check if Rigidbody collider is grounded 3 Answers
Check if entire box collider has air below, instead of just a point on the box? 1 Answer
Where is the general Rigidbodies Drag? 3 Answers
Prefab Sphere floating away 0 Answers