I'm new to Unity and I'm following this tutorial. The error I face when I try to execute to code, which is supposed to move the player left and right is:
UnassignedReferenceException: The variable rb of Movement has not been assigned.
You probably need to assign the rb variable of the Movement script in the inspector.
UnityEngine.Rigidbody.AddForce (UnityEngine.Vector3 force, UnityEngine.ForceMode mode) <0x3cc39790 + 0x00062> in <31353b3f2d2e434595cbfe07fbec4072>:0
UnityEngine.Rigidbody.AddForce (System.Single x, System.Single y, System.Single z) (at C:/buildslave/unity/build/Runtime/Dynamics/ScriptBindings/Dynamics.bindings.cs:176)
Movement.FixedUpdate () (at Assets/Movement.cs:17)
How to fix it because the player does not move?
Movement script:
using UnityEngine;
public class Movement : MonoBehaviour
{
// This is a reference to the Rigidbody component called "rb"
public Rigidbody rb;
public float forwardForce = 2000f; // Variable that determines the forward force
public float sidewaysForce = 500f; // Variable that determines the sideways force
// We marked this as "Fixed"Update because we
// are using it to mess with physics.
void FixedUpdate()
{
// Add a forward force
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
if (Input.GetKey("d")) // If the player is pressing the "d" key
{
// Add a force to the right
rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0);
}
if (Input.GetKey("a")) // If the player is pressing the "a" key
{
// Add a force to the left
rb.AddForce(-sidewaysForce * Time.deltaTime, 0, 0);
}
}
}
You haven't set anything to rb
. In the inspector, you can select a rigidbody to work with, by clicking on "this" (check picture)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With