Среда, 25 января 2017, 02:15

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [298]
Статьи об общих понятиях связанных с созданием игр.
Программирование [66]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [120]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [7]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [8]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [65]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [53]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Для какой операционной системы пишите игры?
Всего ответов: 17085
Главная » Статьи » Создание игр

Unity3D - ставим игру на паузу
Решил заняться переводом англоязычных уроков по Unity3D специально для gcup.ru
Что же делать, если необходимо поставить игру на паузу? Давайте рассмотрим подробно каждое действие.
Сначала вам нужно создать объект, на котором будет "висеть" наш скрипт. Я рекомендую создать новый отдельный пустой объект.
Вкладка 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;
  }
  }
}

Если вы все сделали правильно, то теперь вы можете ставить вашу игру на паузу по нажатию кнопки.
Спасибо за внимание!
Категория: Создание игр | Добавил: MadMax52 (12 мая 2012) | Автор: Газизов Максим.
Просмотров: 18620 | Комментарии: 15 | Рейтинг: 3.1/8 |
Теги: Пауза, урок, Unity, Стоп, JavaScript, Paused, Pause, остановка, Unity3D, юнити
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Unity3D - ставим игру на паузу», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 15
+0-
15 Negiss   (17 марта 2014 23:19)
NegissКто может помочь? Нужно, чтобы при паузе остальные скрипты останавливались.

+0-
14 EchoIT   (21 сентября 2012 14:55)
EchoITПлохая пауза. Ведь все остальные скрипты продолжают работать.

+0-
13 JHawk   (25 мая 2012 19:17)
JHawkчто то не разобрался(

+0-
7 romgerman   (22 мая 2012 00:34)
romgermanБыло бы неплохо сделать меню при паузе, а то уже мучаюсь давненько. А так хорошая статья.

+1-
12 MyACT   (24 мая 2012 17:46)
MyACTНу это же легко smile
Через GUI

+0-
6 MyACT   (20 мая 2012 07:31)
MyACTПеревел за 5 минут скрипт на C#
Code

using UnityEngine;
using System.Collections;

public class Pause : MonoBehaviour {
public bool paused;
  // Use this for initialization
  void Start () {
  
  }
  
  // Update is called once per frame
  void Update () {
  if(Input.GetKeyUp(KeyCode.Escape)){  
  if(!paused){  
  Time.timeScale = 0;  
  paused=true;  
  }else{  
  Time.timeScale = 1;  
  paused=false;  
  }
  }
  }
}

Мало-ли кому пригодится biggrin

+-3-
8 romgerman   (22 мая 2012 00:36)
romgermanЭто было слишком легко smile Зайти на сайт и скопировать скрипт.

+1-
9 Novatorvlad   (22 мая 2012 04:11)
Novatorvladспс за сайт x)

+-2-
10 romgerman   (22 мая 2012 22:07)
romgermanНе за что. Правда плохо, что нет обратного конвертера из шарпа в жс.

+-1-
11 MyACT   (24 мая 2012 17:45)
MyACTПффф,а вручную слабо? biggrin

+-1-
4 Pingwinof   (13 мая 2012 06:35)
Pingwinofя не понял, так чтоль на пробел жать для паузы???

+1-
5 MadMax52   (13 мая 2012 09:38)
MadMax52Вы можете заменить кнопки "Jump" и "Fire1" на любые, которые вам необходимы.http://unity3d.com/support/documentation/ScriptReference/KeyCode.html
Просто когда переводил, решил что будет нагляднее использовать ЛКМ вместо пробела, а конечный скрипт исправить забыл.

+1-
2 Fr0sT   (12 мая 2012 16:52)
Fr0sTБлин,жалко Javascript.

+3-
3 Nekit_Aut   (12 мая 2012 17:51)
Nekit_AutТак перевести же легко!

+3-
1 Nekit_Aut   (12 мая 2012 12:48)
Nekit_AutМногим новичкам может пригодиться. Но можно было бы дополнить статью smile ... Допустим окно или меню паузы как добавить написал бы wink

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
10 случайных движков
  • Torque 2D
  • Seccia
  • DGLE2
  • Ren'Py
  • Brutus2D
  • Astra Gift Maker
  • Free Heroes
  • Point&Click Dev Kit
  • Platfinity
  • Gideros Studio
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    GameDev, Уроки OpenGL, Программирование, Создать Minecraft
    Все права сохранены. GcUp.ru © 2008-2017 | Free GIF Animator Рейтинг