- Home /
Problems defining when OnCollisionEnter should start functioning.
I'm doing a simple platforming game, where I need the "Player" to start jumping after pressing space, and everytime it detects a collision, it jumps with the same initial velocity. But I'm having difficulties defining this function to work only after the user press space. Here one of the codes I've tried but with no luck (Javascript):
private var vel_i:float = 12;
private var A:boolean;
function Start (){
A = false;
}
function Update () {
if(Input.GetKeyUp(KeyCode.Space)){
A = true;
}
}
function OnCollisionEnter (collision : Collision)
{
if (A){
rigidbody.velocity.y = vel_i;
}
}
I've tried defining a inside OnCollisionEnter but when I run the game the player just stays there, doing nothing, after I press space. Hope I can get some help.
Answer by meat5000 · Dec 02, 2013 at 05:02 PM
So, you want to jump and you want an upward thrust when you hit an object, provided you are already jumping? Like classic retro games where for example a balloon exploding sends you further up?
Perform your velocity change on Jump.
In OnCollision, if A, (like you've done), AddRelativeForce :)
Edit: For the jump itself you need Down and to make pressing space do something when it is pressed.
if(Input.GetKeyDown(KeyCode.Space)){
A = true;
rigidbody.velocity.y = vel_i;
}
This will get the velocity applied when space bar goes down.
The collision should AddForce to the Player.
$$anonymous$$y problem is not keeping the player jumping, but defining the moment he starts to jump. I can start the game with the player already jumping, but I wanna make it so he starts jumping when the user press space, that's what I cannot do. After that the player keeps jumping without user input.
Your answer
Follow this Question
Related Questions
OnCollisionEnter not called when colliding with clone 0 Answers
My sprite keeps falling through my ground 3 Answers
[2D Platformer] How do i make a platform that is only active when the player is standing on it? 1 Answer
Character Controller falls through moving/rotating platforms (Not A Duplicate Post) 1 Answer
One Way Collider 5 Answers