Главная » Статьи » 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;
  }
  }
}

Если вы все сделали правильно, то теперь вы можете ставить вашу игру на паузу по нажатию кнопки.
Спасибо за внимание!
Категория: Unity3D | Добавил: АДМИН (2012/Июн/26) | Автор: Газизов Максим
Просмотров: 2835 | Комментарии: 2 | Теги: Unity, урок, пауза, стоп, javascript, Paused, Pause, остановка, unity3d, юнити | Рейтинг: 4.0/1
Всего комментариев: 2
№2 юрец написал: 2013/Мар/05 в 11:16
у меня только так работает
№1 юрец написал: 2013/Мар/05 в 11:15
//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;
}
}
}
}
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]