Делаю шахматы на Unity. Проблема с выделением клетки.
Идея такова: при нажатии на клетку она каким-нибудь цветом выделяется, а при повторном нажатии возвращается к изначальному цвету. Но если я выделил одну клетку, а потом нажал на другую выделяется другая, а первая не возвращается к изначальному цвету. Не могу понять как это реализовать. Помогите пожалуйста.
Код скрипта выделения:
public class LightOn : MonoBehaviour
{
public GameObject lastChaged; // ранее выделенная фигура
// GameObject который в теории ссылается на предыдущую выделенную клетку
// и если изменить его цвет, то изменится и цвет предыдущей клетки
public Material matChange; // цвет выделения (зелёный)
Material myMat; // дефолтный цвет (чёрный / белый)
private void Start()
{
myMat = GetComponent<Renderer>().material; // узнаём изначальный цвет клетки
}
public void OnMouseUp() // нажимаем на клетку
{
if (myMat == GetComponent<Renderer>().material) // если цвет объекта чёрный или белый
{
if (lastChaged != null) // проверка выделялалсь ли до этого какая-то фигура
{
//lastChaged.ResetColor(); // меняем цвет последней фигуры на дефольный
lastChaged.GetComponent<Renderer>().material = myMat;
}
lastChaged = this.gameObject; // данная фигура стала прошлой
GetComponent<Renderer>().material = matChange; // выделяем данную фигуру
}
else // установка изначального цвета
{
ResetColor(); // сброс цвета выделенной кнопки
}
}
// сброс цвета
public void ResetColor()
{
GetComponent<Renderer>().material = myMat;
}
}