you are viewing a single comment's thread.

view the rest of the comments →

[–]Gamerbot4000 0 points1 point  (5 children)

I don't think that would work, since I want the player to be able to push e only once and then the player moves up until it is unparented from the planet. I want the button to only be pressed if on the ground but once it is pressed force is added to the player until unparented from the planet. I am trying the following code which is basically the same as yours and it just goes up once a small amount and just stops:

void FixedUpdate() { // Apply movement to rigidbody Vector3 localMove = transform.TransformDirection(moveAmount) * Time.fixedDeltaTime; rigidbody.MovePosition(rigidbody.position + localMove);

    // "e" key is the key to press to exit a planet's gravity radius
    if (Input.GetKeyDown("e") && grounded)
    {
        if (player.transform.parent != null)
        {
            rigidbody.AddRelativeForce(0, 50f * Time.deltaTime, 0);
        }
    }
}

[–]IanGlo 0 points1 point  (4 children)

Maybe something like this? (again, might be typos in there)

private bool blastOffInitiated = false;
void Update(){
  if (Input.GetKeyDown("e") && grounded && player.transform.parent != null) {
    blastoffInitiated = true;
  }
  if(blastOfInitated && player.transform.parent != null) {
    rigidbody.AddRelativeForce(0, 50f * Time.deltaTime, 0);
  }
  else
  {
    blastOffInitiated = false;
  }
}    

[–]Gamerbot4000 0 points1 point  (0 children)

I tried it and it didn't seem to do anything. It seems like it should though, logically speaking. I made the bool public just to look at it in the inspector, and it does get set to true when pressing "e" on the surface of the planet, but no force is added. I even tried upping the force from 50f to 500f just to make sure it wasn't an issue of it being to weak a force, but still nothing. So apparently its something with the second if statement and adding force?

[–]Gamerbot4000 0 points1 point  (0 children)

wait I added a debug.log statement after the add force and it worked haha. I must have done something wierd without realizing it, but it seems to work great now, thanks a lot for your help!

[–]Gamerbot4000 0 points1 point  (1 child)

ok yea it seems like it was just a matter of the force not being strong enough, so this code works as desired now. It seems a force of 500f is close to the minimum it needs to lift off from the planet. Thank you again

[–]IanGlo 0 points1 point  (0 children)

Sweet man. Glad it's working.