Как сделать объекты на сцене неактивными при открытии меню в Unity?
Пишу шахматы на Unity.
Как при открытии меню отключить возможность двигать фигуры?
Источник: Stack Overflow на русском
Пишу шахматы на Unity.
Как при открытии меню отключить возможность двигать фигуры?
Если у тебя фигуры сделаны как UI объект(картинка, кнопка и т.д.), то создаешь переменную которая будет проверять, в меню ли ты, а потом прописываешь условие, что если ты находишься в меню - твоим фигурам назначается слой Ignore Raycast
, который не позволяет как либо взаимодействовать с фигурами. Насколько я понял, у тебя уже есть массив с фигурами
public GameObject[] objects;
Поэтому создаём функцию, где назначаем всем фигурам в массиве слой Ignore Raycast
:
private void DisableObjects(){
for (int i = 0; i < objects.Length; i++){
objects[i].gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
}
}
А потом создаём функцию, где возвращаем всем фигурам исходный слой, допустим слой Default
:
private void EnableObjects(){
for (int i = 0; i < objects.Length; i++){
objects[i].gameObject.layer = LayerMask.NameToLayer("Default");
}
}