I'm attempting to make a platformer. I've got some basic movement down, but I'd rather not have the "yes the player can jump" variable switched over when the player's head bumps into an overhead object (air-jumping isn't a feature I want). So, I created a small object beneath the player, and the jumpable trigger is supposed to fire when it hits a platform. Unfortunately, it isn't firing properly. What am I missing?
This code is in the Player object (which is parent of the Player Feet object) PlayerMovement.js
var BoxJump : float;
var BoxSpeed : float;
static var CanJump : int=1;
function Update(){
if(Input.GetKey("a") || Input.GetKey("left")) transform.Translate(Vector3(-BoxSpeed, 0, 0) * Time.deltaTime);
if(Input.GetKey("d") || Input.GetKey("right")) transform.Translate(Vector3(BoxSpeed, 0, 0) * Time.deltaTime);
if(Input.GetKeyDown("space") && CanJump == 1){
rigidbody.AddForce(Vector3(0, BoxJump, 0));
CanJump = 0;
};
}
This code is in the Player Feet object (which is a child of the Player object) PlayerJumping.js
function OnCollisionEnter(CollidedObject : Collision){
if(CollidedObject.gameObject.tag == "Jumpable"){
PlayerMovement.CanJump = 1;
Debug.Log("Hello?");
}
}
If the object Player Feet has no rigidbody, then it doesn't seem to function at all. If I give it a rigidbody, then the script works, but suddenly the Player Feet doesn't seem to function as a child to the Player object anymore; when they collide they go flying away from each other.
↧