Unity: NullReferenceException: objectverwijzing niet ingesteld op een instantie van een object

Ik volg een Unity-zelfstudie. Ik heb een probleem wanneer ik een botsing in het spel probeer te detecteren. Dit is de fout:

NullReferenceException: objectverwijzing niet ingesteld op een instantie van een object

Dit is het script:

using UnityEngine;
public class Collide : MonoBehaviour
{
    public Movement movement;     // A reference to our PlayerMovement script
    // This function runs when we hit another object.
    // We get information about the collision and call it "collisionInfo".
    void OnCollisionEnter(Collision collisionInfo)
    {
        // We check if the object we collided with has a tag called "Obstacle".
        if (collisionInfo.collider.tag == "Obstacle")
        {
            movement.enabled = false;   // Disable the players movement.
            Debug.Log("Coollision occured");
        }
    }
}


Antwoord 1

Zoals ik in de tweede afbeelding zag, heb je de bewegingsreferentie niet toegevoegd aan het bewegingsveld. Tegelijkertijd wijst u in het script ook de referentie niet toe. Probeer toe te wijzen aan de editor of u kunt een object maken.


Antwoord 2

De reden is dat u het bewegingsveld niet hebt ingesteld in uw Collide-component.
Je kunt het toevoegen vanuit de Unity Editor of de volgende regel toevoegen aan je Start-functie van Collide:

void Start()
{
    movement = GetComponent<Movement>();
}

Other episodes