Всем привет. У меня есть, допустим, 5 скриптов (все кроме одного отключены) и мне нужно, чтобы на колесико мыши отключался рабочий скрипт и включался следующий. Чтобы это сделать, я решил использовать массив, но я не знаю какой тип массива нужно поставить. Если массив из скриптов сделать не возможно, то как мне реализовать смену рабочего скрипта?
Все "скрипты" наследуются от MonoBehaviour
, так что мы можем хранить массив ссылок на этот класс. Поменять активный элемент с помощью мыши - тривиальная задача через Input.GetAxis
. Единственная проблема - отлавливать случай, когда массив компонентов пустой или когда в массиве все элементы выключены - вопрос не об этом, так что с этим вопросом сами как-нибудь справитесь.
public class ActivateComponentByMouseWheel : MonoBehaviour {
[SerializeField]
MonoBehaviour[] components;
[SerializeField, HideInInspector]
int activeIndex = -1;
void Update() {
float mouseWheelInput = Input.GetAxis("Mouse ScrollWheel");
if(mouseWheelInput > 0) {
SetNextActiveComponent(activeIndex + 1);
}
else if(mouseWheelInput < 0) {
SetNextActiveComponent(activeIndex - 1);
}
}
// Проверяем на уровне редактора, что в массиве компонентов только 1 компонент активен
// Также сохраняем индекс этого компонента
void OnValidate() {
int i;
for(i = 0; i < components.Length; i++) {
if (components[i].enabled) {
activeIndex = i;
break;
}
}
for(i += 1; i < components.Length; i++) {
components[i].enabled = false;
}
}
void SetNextActiveComponent(int nextIndex) {
// проверяем граничные индексы
if(nextIndex >= components.Length) {
nextIndex = 0;
}
else if(nextIndex <= 0) {
nextIndex = components.Length - 1;
}
// отключаем текущий компонент
components[activeIndex].enabled = false;
// включаем следующий компонент
components[activeIndex = nextIndex].enabled = true;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
помогите пожалуйста решить проблемуУстанавливаю composer по гайду с digitalOcean установка просто висит, ничего не происходит
Пишу программу на C++, есть работа с PhP частью Нужно вывести число из Базы ДанныхПри корректном подключении идёт такое окно:
У каждой записи должна быть возможность добавлять галерею из картинокНашла как вариант плагин ACF Photo Gallery Field, вывожу вот таким образом, однако...