Пятница, 29 Ноября 2024, 15:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Создание простой игры в Unity3D на uScript PLE
MatikДата: Пятница, 24 Мая 2013, 13:07 | Сообщение # 1
частый гость
Сейчас нет на сайте
Создание простой игры в Unity3D на uScript PLE


uScript PLE
– asset для Unity3D, который позволяет визуально программировать логику вашей игры.
Я сам не полностью разобрался в этом модуле, но все же решился написать по нему урок.
Это мой первый урок, так что не судите строго. Он рассчитан на пользователей, которые имеют базовые навыки работы с Unity3D.
Какая же у нас будет игра? Все очень просто – имеется игрок, который мчится вперёд и облетает препятствия. Начнём.
Процесс создания
Создаём новый проект и импортируем в него следующие assets: Image Effects (Pro Only), uScript PLE 38.
Создаём такие объекты как Capsule(Player), Sphere(Cabin), Point Light(Light) и Plane(Ground), далее переименовываем их на имена в скобках. Первые 3 объекта совмещаем воедино(В Hierarchy перетаскиваем Cabin и Light на Player). На камеру накладываем компонент Edge Detection(Geometry) и тоже прикрепляем её к Player.
Для наглядности создадим для некоторых объектов цветные материалы.
Получится примерно так:

Создадим gameplay нашей игры. В меню Unity выбираем Tools>Detox Studios>uScript Editor.
На вопрос отвечаем Enable, принимаем лицензионное соглашение. Перед вами окно самой uScript PLE. В левой части расположены вкладки, в которых находятся основные блоки логики. Мы будем работать с Actions(Действия), Conditions(Условия), Events(События) и Variables(Переменные). Добавим наш первый блок просто кликнув по надписи Events>Game Events>Global Update. Этот блок отвечает за обновление сцены в игре. Добавим ещё один блок отвечающий за движение объектов Actions>GameObjects>Movement>Control GameObject (Move). Кликните по этому блоку 1 раз и в нижней левой части напротив свойства Speed впишите 0.1. Далее перетащите из иерархии объектов Player и выберите Place Variable: GameObject.
Соединяем всё как на рисунке.

Сохраняем наш скрипт File Menu>Save As… Сохраняем наш проект и сохраняем сцену.
Если вы всё сделали правильно, то при запуске игры ваш игрок должен сам двигаться вперёд.
Дальше создадим движение вправо и влево нашего игрока по нажатию клавиш A и D.
Events>Input Events> Input Events - Событие нажатия любой клавиши.
Actions>Events>Filtres>Input Events Filter – Фильтр конкретной клавиши.
В блоке Input Events Filter в свойстве Key Code введите A. Соедините выход Input Events со входом
Input Events Filter.
Скопируйте блок Control GameObject (Move) вместе с переменной Player и соедините вход этого блока с выходом Input Held(Клавиша зажата). А в свойстве Direction самого Control GameObject (Move) укажите Left.
Скопируйте последние 3 блока и в свойстве второго блока Key Code>D, последнего блока Direction> Right.
Результат:

Теперь наш игрок может двигаться влево и вправо.
Сохраним и закроем пока uScript. Установите значения в инспекторе Player: Position x=0,y=0.5,z=-243, Rotation x=-90,y=0,z=0. Ground: Position x=0,y=0,z=0, Rotation x=0,y=0,z=0, Scale x=1,y=1,z=50.
Создайте 4 объекта Cube с именами Wall и модифицируйте их так, чтобы они были границами для игрока параллельно и перпендикулярно длине Ground. Также наложите на них материал.
Выйдет примерно так:

Создайте примитив Cylinder(Finish) и расположите его в конце нашей дороги.
Наложите на следующие объекты физический компонент Rigidbody и укажите в свойствах этого компонента в инспекторе: Player(Use Gravity[-],Is Kinematic[+]), На всех Wall и Finish(Вкладка Constraints и все галочки). Создайте тэг под названием Wall и примените его ко всем Wall.
Реализуем генерацию кубиков, которые будут мешать нам дойти до конца уровня.
Итак зайдем опять в uScript и добавим, потом соединим блоки как на рисунке. Воспользуйтесь поиском для того чтобы быстрее их найти.

Int1, Int2 и Cubs это переменные типа int со значениями 0,1 и 100. Их добавить можно нажав ПКМ>Add>Variables>Int. Нажмите ПКМ на треугольнике под Set Random Vector3 и выберите Create Linked Variable и переменная сама появится. Такую же операцию проведите с переменными, которые необходимо добавить. В переменной TagWall напишите значение Wall, а в переменной RigidbodyComp значение Rigidbody.
Будем разбираться. Global Update постоянно обновляет сцену. С каждым обновлением логический блок Add Int к значению переменной Int1 прибавляет значение переменной Int2 и записывает результат в переменную Int1. Compare Int сравнивает значение переменной Int1 с значением переменной Cubs. Если Int1<Cubs, то выполняются блоки что соединены с выходом <. Set Random Vector3 устанавливает произвольные значения 3-x координат(x,y,z) в заданных пределах. Укажите свойства этого блока.

Блок Create Primitive создаёт примитив Cub с хаотичными в этих пределах координатами. К созданному кубу применяется материал красного цвет(блок Assign Material Color), присваивается тэг Wall(блок Set Tag) и добавляется физический компонент Rigidbody(блок Attach Component).
Это была самая сложная часть в нашей игре. Давайте теперь сделаем перемещение нашего игрока при столкновении с объектом с тэгом Wall.

Перетащите Player на окно uScript и соедините его со входным значением Instance. Остальное вы знаете как создавать. В переменной TagWall значение Wall. В свойствах Move To Location Fixed напишите End Location 0,0.5,-243; Speed 100. Присвойте объекту Finish тэг Finish. Скопируйте часть блоков Crash Player, удалите Move To Location Fixed, добавьте блок Destroy и соедините его со вторым блоком и с Player. Добавьте блок Print Text и соедините его вход Show Text с выходом Has All Tags блока GameObject Has Tag. В свойствах блока Print Text укажите значения: Text(Victory!!!), Font Size(50), Font Style(Bold), Alignment(Middle Center).

И на завершающем этапе создадим при нажатии клавиши R рестарт уровня, при нажатии Escape выход из игры. Значение переменной LevelName несёт в себе название сохранённой нами сцены.
Fr0sTДата: Пятница, 24 Мая 2013, 16:19 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Обалдеть,что за штуки выходят на юнити.



MatikДата: Пятница, 24 Мая 2013, 21:23 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата (Fr0sT)
Обалдеть,что за штуки выходят на юнити.

С ними он становится конструктором)
andarkyДата: Пятница, 24 Мая 2013, 22:35 | Сообщение # 4
старожил
Сейчас нет на сайте
уж куда проще скриптами описать


Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
Fr0sTДата: Суббота, 25 Мая 2013, 11:58 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
andarky, согласен и интереснее.



MatikДата: Суббота, 25 Мая 2013, 12:02 | Сообщение # 6
частый гость
Сейчас нет на сайте
Интереснее скриптами? По мне так наоборот скучно с текстом возиться.
SarCasmДата: Суббота, 25 Мая 2013, 12:04 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Диаграммы? Страшно sad

Моя игра Gamiron#11 - Тема Скачать
JHawkДата: Суббота, 25 Мая 2013, 12:35 | Сообщение # 8
めゃくちゃちゃ
Сейчас нет на сайте
Хм.... непонятно, куда катиться движок, в лучшую или худшую сторону....
Что касается урока, то почему ТС не приложил хотя бы ссылки на скачивание плагина?


Сообщение отредактировал JHawk - Суббота, 25 Мая 2013, 12:35
zisXДата: Суббота, 25 Мая 2013, 14:44 | Сообщение # 9
Neto Zis
Сейчас нет на сайте
Вся эта фигня меня так бесит,непонятно и запутано для меня,легче и проще скриптами писать.

MatikДата: Суббота, 25 Мая 2013, 16:00 | Сообщение # 10
частый гость
Сейчас нет на сайте
Приложить не смог т.к. интернет медленный. Вот ссылка на скачивание www.detoxstudios.com/products/uscript/download/
Нужна регистрация.
KiraДата: Суббота, 25 Мая 2013, 16:27 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
Зря вы так. Не скажу за UIScript работаю с др. Но когда большой кусок кода или диаграмм упакован
в одно такое окошко, это очень круто и удобно.
И систему квестов или диалогов, просто удобно делать и отслеживать. Причем мини или побочные упаковывать
в более глобальные. Плюс ко всему необязательно все самому, удобный плагин и сценаристу.


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн


Сообщение отредактировал Kira - Суббота, 25 Мая 2013, 16:28
MatikДата: Суббота, 25 Мая 2013, 19:42 | Сообщение # 12
частый гость
Сейчас нет на сайте
Я вот почти разобрался с плагином Playmaker. Так там вообще всё удобно и компактно, но логику конечно сложнее понять. Там даже можно в реальном времени отладку проводить.
KiraДата: Суббота, 25 Мая 2013, 21:12 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
Цитата (g336666)
Я вот почти разобрался с плагином Playmaker. Так там вообще всё удобно и компактно, но логику конечно сложнее понять. Там даже можно в реальном времени отладку проводить.

Хм интересно, очень похож с виду на Universe Vizio(я кстати им пользуюсь).


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
MatikДата: Воскресенье, 26 Мая 2013, 02:20 | Сообщение # 14
частый гость
Сейчас нет на сайте
Дело в том что я скачал playmaker с торрента и походу она взломана. Нет никаких баннеров. А в остальных аналогах меня это напрягает почему-то. Игровое место занимает. А в vizio пытался сам разобраться, но так ничего и не вышло.

Добавлено (26.05.2013, 02:20)
---------------------------------------------
Дело в том что я скачал playmaker с торрента и походу она взломана. Нет никаких баннеров. А в остальных аналогах меня это напрягает почему-то. Игровое место занимает. А в vizio пытался сам разобраться, но так ничего и не вышло.

w_w_wДата: Среда, 29 Января 2014, 13:52 | Сообщение # 15
уже был
Сейчас нет на сайте
можно перезалить картинки?
WorlfДата: Суббота, 08 Марта 2014, 18:09 | Сообщение # 16
почетный гость
Сейчас нет на сайте
Спасибо очень помогло!А не напишите ли вы такой же туториал по PaLymaker?Вы тут писали что пользуетесь им.

Сообщение отредактировал Worlf - Понедельник, 10 Марта 2014, 23:19
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг