Here’s my script and also I should mention upon letting go of left or right buttons fall speed greatly increases. Also while your here I did use the unity 2d platformer tutorial to check if grounded and if grounded is not working.
public GameObject MarioMobster;
public Vector3 RightForce = new Vector3(404, 0);
public Vector3 leftforce = new Vector3(-404, 0);
public Vector3 Jumpforce = new Vector2 (0, 404);
public static int health = 3;
public Sprite sprite1;
public Sprite sprite2;
private SpriteRenderer spriterenderer;
//public GameObject bullets;
private Transform groundcheck;
private bool grounded = false;
private bool LookingRighty = true;
private bool LookingLefty = false;
public float bulletspeed = 20f;
public Rigidbody2D bullets;
// Use this for initialization
void Start () {
spriterenderer = GetComponent<SpriteRenderer> ();
if (spriterenderer.sprite == null) {
spriterenderer.sprite = sprite1;
}
}
// Update is called once per frame
void Update () {
grounded = Physics2D.Linecast(transform.position, groundcheck.position, 1 << LayerMask.NameToLayer("Ground"));
}
void Awake(){
groundcheck = transform.Find ("groundcheck");
}
public void Right (){
GetComponent<Rigidbody2D>().velocity = RightForce;
//GetComponent<Rigidbody2D>().AddForce(RightForce);
if (LookingLefty = true) {
LookingLefty = false;
LookingRighty = true;
}
Debug.Log ("moveScript.Right was called succesfully");
if(spriterenderer.sprite == sprite2){
spriterenderer.sprite = sprite1;
}
}
public void Left(){
GetComponent<Rigidbody2D> ().velocity = leftforce ;
Debug.Log ("left has also been called");
if (LookingRighty = true) {
LookingRighty = false;
LookingLefty = true;
}
if(spriterenderer.sprite == sprite1){
spriterenderer.sprite = sprite2;
}
}
public void Jump(){
Debug.Log ("jump has also been called");
if (grounded) {
GetComponent<Rigidbody2D> ().velocity = Jumpforce;
Debug.Log("grounded is true");
}
}
}