Проблема с ссылками Unity

Вылезла ошибка и я не могу понять как решить ее

NullReferenceException: Object reference not set to an instance of an object PlayerController.OnEnable () (at Assets/Scripts/PlayerController.cs:39)

PlayerController.cs

private void OnEnable() 
{
    shootAction.performed += _ => ShootGun();
}

private void OnDisable() 
{
    shootAction.performed -= _ => ShootGun();
}

private void ShootGun()
{
    RaycastHit hit;
    GameObject bullet = GameObject.Instantiate(bulletPrefab, barrelTransform.position, Quaternion.identity, bulletParent);
    BulletController bulletController = bullet.GetComponent<BulletController>();
    if (Physics.Raycast(cameraTransform.position, cameraTransform.forward, out hit, Mathf.Infinity))
    {
        bulletController.target = hit.point;
        bulletController.hit = true;
    }
    else
    {
        bulletController.target = cameraTransform.position + cameraTransform.forward * bulletHitMissDistance;
        bulletController.hit = true;
    }
}

BulletController.cs

public class BulletController : MonoBehaviour
{
[SerializeField] private GameObject bulletDecal;

private float speed = 50f;
private float timeToDestroy = 3f;

public Vector3 target { get; set; }
public bool hit { get; set; }

private void OnEnable() 
{
    Destroy(gameObject, timeToDestroy);
}

void Update()
{
    transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
    if (!hit && Vector3.Distance(transform.position, target) < .01f)
    {
        Destroy(gameObject);
    }
}

private void OnCollisionEnter(Collision other) 
{
    ContactPoint contact = other.GetContact(0);
    GameObject.Instantiate(bulletDecal, contact.point, Quaternion.LookRotation(contact.normal));
    Destroy(gameObject);    
}
}

Все ссылки вроде правильно указал в инспекторе Не понимаю в чем проблема.


Ответы (1 шт):

Автор решения: Mercyplus

Я решил свою проблему. переименовать метод Start() на Awake().

Если вспомнить порядок событий в Unity, то методы onEnable() выполняются перед методом Start(), в этом и была проблема. Поправьте меня, если я не правильно обозначил.

→ Ссылка