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>();
}