Как из нескольких клеток выделять только 1?
Давайте попробую попробовать пояснить суть))
LightOn  - скрипт висит у вас видимо на каждой клетке.
и на каждой клетке есть поле/ссылка - public GameObject lastChaged.
и одна клетка про другую клетку - ничего знать не знает.
проверка - а было ли что-то выделено - проверит локальную для текущей клетки ссылку lastChaged - и ничего не обнаружит.
"выделятель" клеток, должен быть общим, глобальным.
какой-то скрипт посылающий лучи, или принимающий события из 
public void OnMouseUp() // нажимаем на клетку
или ввести глобальную переменную "текущая выделенная".
чтобы любая клетка могла узнать про это.
надеюсь суть стала ясна.
удачи)
РАБОТАЕТ! Храни вас Господь!!
Рабочий код (вдруг надо кому)public class GlobalCS: MonoBehaviour
{
    // глобальная переменная (запоминает последнюю изменённую клетку)
    public static LightOn lastChangedSquare; 
}

public class LightOn : MonoBehaviour
{
    
    public Material matChange; // цвет выделения (зелёный)
    Material myMat; // дефолтный цвет (чёрный / белый)


    private void Start()
    {
        myMat = GetComponent<Renderer>().material; // узнаём изначальный цвет клетки
        //lastChaged = this.gameObject;
    }


    public void OnMouseUp() // нажимаем на клетку
    {
        if (myMat == GetComponent<Renderer>().material) // если цвет объекта чёрный или белый
        {
            if (GlobalCS.lastChangedSquare != null) // проверка на наличие объекта
            {
                GlobalCS.lastChangedSquare.ResetColor(); // вызываем метод сброса цвета
            }


            GlobalCS.lastChangedSquare = this; // данная фигура стала прошлой

            GetComponent<Renderer>().material = matChange; // выделяем данную фигуру

            
        }   
        else // установка изначального цвета
        {
            ResetColor(); // сброс цвета выделенной кнопки
        }
        
    }

    // сброс цвета
    public void ResetColor()
    {
        GetComponent<Renderer>().material = myMat;

    }

}