[Unity4] Система паузы.
Шаг первый.
- Создаем переменные
bool IsPause = false;
CharacterController controller;
public AudioSource[] AOAS;
Отлично, первый шаг мы выполнили, теперь будем начинать создавать второй…
Шаг второй.
При инициализации игры мы должны получить компонент на объекте. Что за компонент? Контроллер игрока, конечно же:void Start() {
controller = transform.GetComponent<CharacterController>();
}
Теперь мы приступаем к самому трудному шагу.
Шаг третий.
Ну вот мы и пришли к великой и могучей функции Update (). В ней мы пропишем основную систему паузы. Начнем с простого — сделаем условие нажатия на клавишу и проверку на приземленность игрока, то есть на земле ли игрок:if(Input.GetKeyDown(KeyCode.P) && IsPause == false && controller.isGrounded) {
}
В самом условии мы получим звуки и с помощью цикла поставим их на паузу, а также поставим время игры на 0, то есть остановим:
AOAS = FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
Time.timeScale = 0;
for (int i = 0; i < AOAS.Length; i++) {
AOAS[i].Pause();
}
IsPause = true;
Теперь мы создали паузу, давайте распишу вам все подробнее:
- Сначала мы ищем все объекты, имеющие компонент звука, то есть AudioSource — AOAS = FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
- Потом остановили время — Time.timeScale = 0;
- Цикл подсчета всех объект и пауза всех звуков в одном из последних шагов был реализован — for (int i = 0; i < AOAS.Length; i++) {
AOAS[i].Pause();
} - И говорим нашей системе, что пауза включена заключающей строкой — IsPause = true;
else {
if(Input.GetKeyDown(KeyCode.P) && IsPause == true) {
Time.timeScale = 1;
for (int i = 0; i < AOAS.Length; i++) {
AOAS[i].Play();
}
IsPause = false;
}
}
Ну вот и подошел этот урок к концу, спасибо всем вам за внимание, с вами был mepihin, Максим Епихин.
2 комментария