Обработка NullReferenceException

Понимаю, что ошибка состоит в том что объект к которому обращаюсь = null, но в упор не вижу в чем проблема. Данный скрипт используется 2 объектами. Консоль выдает 4 ошибки, т.е. по 2 на объект. Все в строке 42 ( if (Vector2.Distance(transform.position, StartPoint.position) < PatrolDistance && !angry). Итого: В скрипте, в строке 42 есть 2 объекта, которые =null, на скрипт ссылается 2 объекта и выдают 4 ошибки, учитывая, что PatrolDistance определен, делаем вывод, что корень зла - 2 .position. Но почему они возвращают null?

Извините, если кого-то запутал своими размышлениями.


public class Slime : Entity
{

    private readonly float speed = 3.5f;
    private Animator animator;
    [SerializeField] private int PatrolDistance;
    private readonly Transform StartPoint;
    private bool movingRight;
    Transform player;
    private readonly float maxDistanceAngry;
    bool angry = false;
    bool calm = false;
    bool toBack = false;
    
    private void SetState(SlimeStates value)
    {animator.SetInteger("state", (int)value); }

    private void Awake()
    {
        animator = GetComponent<Animator>();
        
        
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject == Hero.Instance.gameObject)
        {
            Hero.Instance.GetDamage(Damage);
        }
    }


    private void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player").transform;
    }
    private void Update()
    {
        if (Vector2.Distance(transform.position, StartPoint.position) < PatrolDistance && !angry)
        {
            calm = true;
        }
        if (Vector2.Distance(transform.position, player.position) < maxDistanceAngry)
        {
            angry = true;
            calm = false;
            toBack = false;
        }
        if (Vector2.Distance(transform.position, player.position) > maxDistanceAngry)
        {
            toBack = true;
            angry = false;
        }```

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