- Home /
How to I make my player push off of the ground?
I'm making a skiing type game where each of the poles(the things the skier used in each hand) would push off from the ground and propel the player forward. I know I can do some sort of manual trigger where if the pole collides with the ground, I could send a message for to move the character forward with:
function OnCollisionEnter(collision : Collision){
if (collision.gameObject.tag == "floor" && !enteredFloor){
characterMotor.SetVelocity(Vector3(0,0,5));
enteredFloor = true;
}
}
What I'm not quite understanding is how to make the character moved based on the collision of the pole to the ground. For example, if the pole hits the ground slowly, it won't push the player forward as much as if the pole contacted the ground with high velocity. Also, the angle at which the pole hits the ground would be how the player turns. This would have to be calculated with the rigidbody physics, correct? So i tried this after adding rigidbody components to the poles and restraining all movement:
var inverseVelocity : Vector3;
var vInverted : Vector3;
var poleVelocity : Vector3;
var characterMotor : CharacterMotor;
var enteredFloor : boolean;
function Start(){
inverseVelocity = Vector3(-1,-1,-1);
}
function OnCollisionEnter(collision : Collision){
if (collision.gameObject.tag == "floor" && !enteredFloor){
poleVelocity = gameObject.rigidbody.velocity;
vInverted = Vector3.Scale( poleVelocity, inverseVelocity );
characterMotor.SetVelocity(vInverted);
enteredFloor = true;
}
The first problem is that poleVelocity returns Vector3(0,0,0), which is because I constrained the position and rotation of the rigidbodies. If I don't constrain them then the poles will just bounce away from the player. The second is that there is a SendMessage("OnExternalVelocity") that never gets received. Where is this function located?
If using the rigidbody doesn't work, would I then have to create my own script to determine the velocity of the poles myself? (Vector3(distance)/time calculation)
Your answer
Follow this Question
Related Questions
CharacterController.skinWidth and vertical displacement 2 Answers
How to make my Character run through walls with the use of the Character Controller component 1 Answer
How can I make two Character Controllers Collide 2 Answers
hi, how to give controls to a 3d character model. i have downloaded the model as .fbx file 0 Answers