so, I followed below tutorial.


Going well until 18:50 (video time in tutorial), when the tutor compiles and able to move and jump the character. And then, when I try it, mine was not moving or jumping at all.

So, how to move the character?

I've also tried some solutions on the video's youtube comments, but nothing works.

P.S. I'm not new to C# at all, but new to Unity development. I'm using Unity 5.


Update : Here are the props screenshots and Controller c# code :


Cube prop screenshot


Hero (1) prop screenshot Hero (2) prop screenshot


using UnityEngine;
using System.Collections;

public class SimplePlatformController : MonoBehaviour {

[HideInInspector] public bool facingRight = true;
[HideInInspector] public bool jump = false;

public float moveForce = 365f;
public float maxSpeed = 5f;
public float jumpForce = 1000f;
public Transform groundCheck;

private bool grounded = false;
private Animator anim;
private Rigidbody2D rb2d;

// Use this for initialization
void Awake () 
    anim = GetComponent<Animator> ();
    rb2d = GetComponent<Rigidbody2D> ();

// Update is called once per frame
void Update () 
    grounded = Physics2D.Linecast(
        1 << LayerMask.NameToLayer("Ground"));

    if (Input.GetButtonDown ("Jump") && grounded) 
        jump = true;


void fixedUpdate()
    float h = Input.GetAxis ("Horizontal");

    anim.SetFloat ("Speed", Mathf.Abs (h));

    if (h * rb2d.velocity.x < maxSpeed) 
        rb2d.AddForce (Vector2.right * h * moveForce);

    if (Mathf.Abs (rb2d.velocity.x) > maxSpeed)
        rb2d.velocity = new Vector2 (
            Mathf.Sign (rb2d.velocity.x) * maxSpeed, 

    if ((h > 0 && facingRight) || (h < 0 && !facingRight))
        Flip ();

    if (jump) 
        anim.SetTrigger ("Jump");
        rb2d.AddForce (new Vector2 (0f, jumpForce));
        jump = false;

void Flip()
    facingRight = !facingRight;
    Vector3 theScale = transform.localScale;
    theScale.x *= -1;
    transform.localScale = theScale;


  • \$\begingroup\$ when was the last time in the video that it compiled and moved? \$\endgroup\$ Commented Aug 31, 2015 at 18:58
  • \$\begingroup\$ @Justin : about 18:50 \$\endgroup\$ Commented Aug 31, 2015 at 18:59

1 Answer 1


Make sure the ground layer is set to ground on the cubes layer.

Drag the groundCheck object to the new slot on the platform controller script that is visible when selecting the hero object.

Also make sure the hero has his rigidbody2d not set to kinematic.

And that the ground cube does not have a normal collider and is replaced with a 2d collider

edit - or fix a typo from void fixedUpdate() to

void FixedUpdate()
  • \$\begingroup\$ i checked it again, and I think I've did it all. Do I need to add the input manually? \$\endgroup\$ Commented Sep 1, 2015 at 2:23
  • \$\begingroup\$ it should work I thought for sure you had to delete the boxcollider on the ground and put a 2dboxcollider on. Or make sure the ground layer was named "Ground". show some of the code you are using that is in that part of the video. \$\endgroup\$ Commented Sep 1, 2015 at 2:28
  • \$\begingroup\$ Please see the OP, I've updated the details. \$\endgroup\$ Commented Sep 1, 2015 at 2:45
  • \$\begingroup\$ void FixedUpdate() \$\endgroup\$ Commented Sep 1, 2015 at 3:19
  • \$\begingroup\$ Hmm.. I havent checked it out, since im not with my computer. But assuming you are right, then, why mono doesn't handle such error? Maybe returning error or something? Or maybe make it override? Since it'll be safer that way. \$\endgroup\$ Commented Sep 1, 2015 at 4:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .