Ik krijg een NullReferenceException
op deze regel:
animator.transform.position = Vector2.MoveTowards(animator.transform.position, patrolPoints[randomPoint].transform.position, speed * Time.deltaTime);
Hoe kan ik dit oplossen?
Hier is mijn code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PatrolBehaviour : StateMachineBehaviour
{
private GameObject[] patrolPoints;
public float speed;
int randomPoint;
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
patrolPoints = GameObject.FindGameObjectsWithTag("patrolPoints");
randomPoint = Random.Range(0, patrolPoints.Length);
}
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.transform.position = Vector2.MoveTowards(animator.transform.position, patrolPoints[randomPoint].transform.position, speed * Time.deltaTime);
if (Vector2.Distance(animator.transform.position, patrolPoints[randomPoint].transform.position) < 0.1f)
{
randomPoint = Random.Range(0, patrolPoints.Length);
}
}
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
}
}
Antwoord 1, autoriteit 100%
Nou, de fout “objectreferentie niet ingesteld op een instantie van een object” betekent dat u probeert toegang te krijgen tot iets dat momenteel leeg is.
Om dit te proberen te repareren, zorg er dan voor dat al uw variabelen waarden hebben ingesteld en niet null.