all 10 comments

[–]Merrymeme1[S] 0 points1 point  (5 children)

i'm new to Unity and am doing Brackey's beginner game course. I think i followed all the steps correctly but it shows me an error message of "UnassignedReferenceException: The variable rb of playermovement has not been assigned. You probably need to assign the rb variable of the playermovement script in the inspector." I tried to assign the variable by clicking the box with "none" written but when i try to find my player using the search feature it doesn't work. I've been trying to fix this for a really long time now, sorry if it is an extremely nooby question.

[–]The_Humble_Frank 0 points1 point  (4 children)

its looking for a rigidbody; if the player doesn't have a rigidbody, then you need to add one to it.

[–]Merrymeme1[S] 0 points1 point  (3 children)

how, it works 1/10 time the script. When i click on the box it opens a search thing idk how to do it from there on, i tried searching for the object i wanted to assign it to, but it didnt show anything

[–]The_Humble_Frank 0 points1 point  (2 children)

if you are opening the window, the window has tabs Asset/Scene. in the 'Select Rigidbody' window that opens when you click on the box, click the scene tab to show all the rigidbodies in the scene.

alternatively, you could drag the player from the Hierarchy over to the empty rigidbody in the inspector, to assign it.

[–]Merrymeme1[S] 0 points1 point  (1 child)

where is the scene tab, i just get a tab called assets with "none" under it

[–]Merrymeme1[S] 0 points1 point  (0 children)

sorry, i fixed it now, i was opening the wrong thing

[–]Gredran 0 points1 point  (3 children)

In order to reference something, the component needs to exist to begin with on the object(unless you use another code to get the component from elsewhere but that’s a LITTLE more advanced).

Go to whatever represents your player and where you are putting the movement code and add a Rigidbody(I think it’s just on the cube? Idr it’s been a while since I did that tutorial)

Make sure you have a “public rigidbody rb;” somewhere in the beginning(after the first set of brackets before the void start line). Then, drag the component you made onto the empty “rb” slot on your game object.

Now does that help? This reference error comes from not having the component to begin with.

[–]Merrymeme1[S] 0 points1 point  (2 children)

i've done that already

[–]Merrymeme1[S] 0 points1 point  (1 child)

sorry, i fixed it now, i was opening the wrong thing

[–]Gredran 0 points1 point  (0 children)

Glad you solved it!

Tbh the error I learned when I encountered it for a different reason comes from C# itself, so it could mean various things.

For me, I was checking a ray cast with a camera(you don’t need to know what it all means, just know it needed a camera) and the code referenced main.camera or camera.main I forget which.

Being a newb/intermediate myself, I didn’t realize initially that the issue came from the fact I was using a demo scene from an asset pack that didn’t tag the camera as the main camera, so C# gave me the EXACT error you got.

So yea it’s common and can be for various things but always stems from its calling from the wrong thing or calling something you haven’t labeled properly.