I'm making a game in Unity. I'm sure I'm correct and the code works, but this message appears. I want a clear reason and thank you
Line 165 is
GameManager.instance.state = GameManager.States.ROLL_DICE;
Here is my full code if needed
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Stone : MonoBehaviour 
{
    [Header("ROUTES")]
    public Route commonRoute;
    public Route finalRoute;
    public List<Node> fullRoute = new List<Node>();
    [Header("NODES")]
    public Node startNode;
    public Node baseNode;  // NOde in home
    public Node currentNode;
    public Node goalNode;
    int routePosition;
    int startNodeIndex;
    int steps; // DICE AMOUTE 
    int doneSteps;
    [Header("BOOLS")]
    public bool isOut;
    bool isMoving;
    bool hasTurn; // IS FOR HUMAN INPUT
    [Header("SELECTOR")]
    public GameObject selector;
    void Start()
    {
        startNodeIndex = commonRoute.RequestPosition(startNode.gameObject.transform);
        CreatFullRoute();
    }
    void CreatFullRoute()
    {
        for (int i = 0 ; i < commonRoute.childNodeList.Count ; i++)
        {
            int tempPos = startNodeIndex + i;
            tempPos %= commonRoute.childNodeList.Count;
            fullRoute.Add(commonRoute.childNodeList[tempPos].GetComponent<Node>());
        }
        for (int i = 0 ; i < finalRoute.childNodeList.Count ; i++)
        {
            
            fullRoute.Add(finalRoute.childNodeList[i].GetComponent<Node>());
            
        }
    }
    void Update()
    {
         if(Input.GetKeyDown(KeyCode.Space) && !isMoving)
         {
             steps = Random.Range(1, 7);
             Debug.Log("Dvice Number =" + steps);
             if(doneSteps + steps < fullRoute.Count)
             {
                 StartCoroutine(Move());
             }
             else
                 {
                     Debug.Log("Number is to high");
                 }
             }
    }
    IEnumerator Move()
    {
        if(isMoving)
        {
            yield break;
        }
        isMoving = true;
        while(steps>0)
        {
            // routePosition++;
            Vector3 nextPos = fullRoute[routePosition].gameObject.transform.position;
            while(MoveToNextNode(nextPos,8f)){yield return null;}
            yield return new WaitForSeconds(0.1f);
            steps--;
            doneSteps++;
        }
        isMoving = false;
    }
    bool MoveToNextNode(Vector3 goalPos, float speed)
    {
        return goalPos != (transform.position = Vector3.MoveTowards(transform.position,goalPos,speed * Time.deltaTime));
    }
    public bool ReturnIsOut()
    {
        return isOut;
    }
    public void LeaveBase()
    {
        steps = 1;
        isOut = true;
        routePosition = 0;
        // START COUROUTINE
        StartCoroutine(MoveOut());
    }
    IEnumerator MoveOut()
    {
        if(isMoving)
        {
            yield break;
        }
        isMoving = true;
        while(steps>0)
        {
            // routePosition++;
            Vector3 nextPos = fullRoute[routePosition].gameObject.transform.position;
            while(MoveToNextNode(nextPos,8f)){yield return null;}
            yield return new WaitForSeconds(0.1f);
            steps--;
            doneSteps++;
        }
        // UPDATE NODE
        goalNode = fullRoute[routePosition];
        // CHECK FOR CKICKING OTHER STONE
        if(goalNode.isTaken)
        {
            // RETURN TO START BASE NODE
        }
        goalNode.stone = this;
        goalNode.isTaken = true;
        currentNode = goalNode;
        goalNode = null;
        // REPORT BACK TO GAMEMANAGER
        
        GameManager.instance.state = GameManager.States.ROLL_DICE; // <-- THIS IS THE LINE
        isMoving = false;
    }
}


 
    