- Home /
Help with movement script?
I wrote this code earlier and for some reason my character insists on not moving. What did I do wrong?
#pragma strict
//Public Variables
var moveSpeed : float = 80;
var jumpSpeed : float = 25;
var fallSpeed : float = 64;
var maxFallSpeed: float = 60;
var maxUpSpeed: float = 25;
var slopeLimit : float = 45;
//Private Var
private var vm: float;
private var onGround : boolean;
private var xScale : float;
private var h: float;
private var v : float;
private var jump : boolean;
private var circCollider : PolygonCollider2D;
function Start () {
xScale = transform.localScale.x;//Getting correct orientation for player
circCollider = GetComponent(PolygonCollider2D);//Get special 2D collider
}
//Get input for user in update...w/ Rigidvodies apply input in the fixed update
function Update () {
h = Input.GetAxisRaw("Horizontal");
v = Input.GetAxisRaw("Vertical");
jump = Input.GetKey(KeyCode.Space);
}
function FixedUpdate(){
if(onGround && jump){//On the ground and can jump
vm = jumpSpeed;
}
var moveH : float = h * moveSpeed * Time.deltaTime;// Horizontal movement calc
//Flips player orientation
if(h < 0){
transform.localScale.x = -xScale;
}else if(h > 0){
transform.localScale.x = xScale;
}
rigidbody2D.AddForce(Vector2.right * moveH);
rigidbody2D.AddForce(Vector2.up * vm);
}
There could be lots of things that are causing your character to not move. Some things to check:
You may just not be adding enough force. Your code applies a maximum of 1.35 units of force per frame. I don't know if that is enough to get things moving.
You may have the mass too high (related to the previous item).
The Rigidbody may be set to is$$anonymous$$inematic.
There may be a collider in the way.
'moveSpeed' may have a low or 0 value. The value in the Inspector is what matters. The initialization in code is only used when the script is attached.
You may have the "Horizontal" axis setup for the wrong input device (i.e. joystick when you are using buttons for example).
Your answer
Follow this Question
Related Questions
How to change player direction with one button?,How do I make one button change direction of player? 0 Answers
[CLOSED] Can't Move Left Or Right (a/d) In This Movement Script? [CLOSED] 0 Answers
SendMessage throwing "No appropriate version of 'UnityEngine.GameObject.SendMessage' 1 Answer
rollaball ball wont move 2 Answers
What's wrong with the % operator? Simple question. 3 Answers