I have a problem with the build settings

Hi, I’m a beginner to Unity3D, and right now, I am following a tutorial video that teaches me how to make a
game where you control your player, which is a cube, with the arrow keys. up key to move forward, down key to move back, left key to move left, right key to move right. The goal of the game is to avoid enemies, other cubes, and traps, and get to the green cube, which brings you to the next scene, or level. When I play the game with the editor, the controls are fine, but when I move on to the next level, the entire environment is darker. When I build the game for pc and mac and play it from there, the controls are weird. When I press the down arrow(go back) I move so slowly, my player looks like it’s staying still. In order to move faster, I have to hold down either the left or right arrow key. So say I hold down the down key, my cube can barely move, and when I hold down the left key, it moves at normal speeds, but the cube goes back, and left at the same time. But, when I go on to the next level, the lighting for the environment is just fine. Please help me.

Hi @S3N531_YU .

1. First of all I want to say that we are moving an object which has a ‘Rigidbody’ component attached.

2. That means we want to move an object through physics

3. Whenever we’re working with physics we use ‘FixedUpdate()’ function to move our physics object. (As in our case, we have a cube with Rigidbody & we want to move it)

4. Now I want you to put whatever code you have written in your ‘Update()’ function TO ‘FixedUpdate()’ function (TRY THIS FIRST)!!.


5. If still it doesn’t work then make some changes with the following code.

    Private Rigidbody Rb;
    //In Start method we will get our Rigidbody component.
    void Start()
       //Your desired code here. 
       //Then we will get Rigidbody.
    void FixedUpdate()
       //Try something like this.
      float moveHorizontal = Input.GetAxis ("Horizontal");
      float moveVertical = Input.GetAxis ("Vertical");

/*We don't want to move our player in the 'Y' direction that's why 0.0f in 'Y' direction as you     already know that.*/
      Vector3 movement = new Vector3 (moveHorizontal, 0.0f,moveVertical);
    //Adding force with the Movement & multiplied by your desired moveSpeed.
     rb.AddForce (movement * moveSpeed);

6. Kindly Try This and Let me know if it works.

I hope it will work.!