Главная » Статьи » Unity3D | [ Добавить статью ] |
Unity3D - ставим игру на паузу
Что же делать, если необходимо поставить игру на паузу? Давайте рассмотрим подробно каждое действие. Сначала вам нужно создать объект, на котором будет "висеть" наш скрипт. Я рекомендую создать новый отдельный пустой объект. Вкладка GameObject -> Create Empty. Для примера, назовем наш объект Manager. Этот объект будет носить наш скрипт. Приступим непосредственно к написанию скрипта. Создайте новый скрипт Вкладка Project -> Create -> Javascript. Откройте созданный файл двойным кликом. Сначала нам нужно создать булевую переменную, чтобы определять, стоит ли игра на паузе или нет. По умолчанию зададим ей значение false. Code var paused : boolean = false; Далее в функции Update проверим, нажата ли клавиша (в нашем случае - левая кнопка мыши) Code function Update () { if(Input.GetButtonUp("Fire1")){ Если клавиша нажата и переменная paused равна false, то меняем значение переменной на true и останавливаем игровое время. Code if(Input.GetButtonUp("Fire1")){ if(!paused){ Time.timeScale = 0; paused=true; } Теперь мы можем ставить нашу игру на паузу. Но ведь нужно же еще и научиться возвращать привычный ход игрового времени? Дополняем проверку переменной paused. Если переменная равна true и нажата кнопка - меняем ее значение на false и запускаем игровое время. Команда Time.timeScale = x может иметь значение x от 0 до 1. 0 - время остановлено, 1 - соответственно, время идет как ему и полагается. Code else{ Time.timeScale = 1; paused=false; Проверяем: Code var paused : boolean = false; function Update () { if(Input.GetButtonUp("Fire1")){ if(!paused){ Time.timeScale = 0; paused=true; }else{ Time.timeScale = 1; paused=false; } } } Если вы все сделали правильно, то теперь вы можете ставить вашу игру на паузу по нажатию кнопки. Спасибо за внимание! | |
Просмотров: 2835 | Комментарии: 2 | | |
Всего комментариев: 2 | |
у меня только так работает
//name"paused" Javascript :
#pragma strict var paused : boolean = false; function Update () { if(Input.GetButtonUp("Fire1")) { if(Input.GetButtonUp("Fire1")) { if(!paused){ Time.timeScale = 0; paused=true; } else{ Time.timeScale = 1; paused=false; var paused : boolean = false; } } } } | |