Меню Рубрики

Как в unity 5 написать скрипт на экран выбора персонажа

Выбор персонажа в меню игры

Всем доброго времени суток.

Ребят, не прошу написать код. Прошу толкнуть в нужную сторону.

Начинаю изучать Unity, и первые шаги хочу сделать с создания игрового меню.

По задумки, после входа в игру должна открыться сцена с созданием персонажа, выбор расы и кастомизации самого персонажа, создание ника (Если персонаж уже создан, то открывается сцена информации о созданом ранее персонаже и появляется возможность входа в саму игру).

Я так понимаю, нужно создать некоторое кол-во превабов персонажей для каждой расы и для каждого рода (М,Ж), задать им ID, и потом по нажатию кнопок в меню листать эти ID из какого то config листа и менять префабы в сцене выбора персонажа для дальнейшей кастомизации. Затем нужно сохранить уже параметры кастомизированного префаба и передать на следующую сцену информации о персонаже и входа в игру. При последующем запуске игры сразу запускать сцену информации о персонажи с ранее сохраненными данными о персонаже.

А как это реализовать в C# хз.

Укажите, где рыть инфу, или может кто сможет объяснить как это сделать.

Добавлено через 6 минут
Пока что создано префабы двух рас, Люди и Эльфы. В расе Люди созданы 2 префаба, один М и один Ж. В расе Эльфы, так же, один М и один Ж. И того четыре префаба.
Так же, созданы сцена Loading, MainMenu, GameScens1(Карта старта), GameScens2(первая карта мира).

Положение персонажа в пространстве для 2d игры
Здравствуйте. Подскажите может кто сталкивался, как можно сделать следующее. Есть персонаж и.

Переход из игры в меню
Ситуация такова : каждый раз генерица лабиринт нужно сделать так , чтобы игрок при попадании в.

Выбор ЯП для создания 2D игры
Доброго времени суток и прощу прощения за вопрос который уверен всех уже заманал, но сам я уже.

JavaScript для меню игры
Доброго времени суток, я не очень разбираюсь в JavaScript и хотел спросить что я не так сделал что.

привет, такое меню и кастомизация персонажей не простая задачка
если вы только начинаете изучать Unity ..то 99,9% «утоните» в коде не понимая что откуда — куда, настоятельно советую вам сделать хотя бы несколько простых мини игр.. хотя бы что то ..что работает, играбельно для новичка, создавать простое UI, способы сохранения игры и прочие нужные вещи

ну а если по поводу вашей задумки то объяснять тут придется очень многое, проще посмотреть уроки на юtube там их полно на это направление, можно для начала просто что то скопировать от туда и модифицировать под свои нужды

Источник статьи: http://www.cyberforum.ru/unity/thread2283057.html

Написание скрипта для перемещения персонажа в Unity

Unity — Обращение к публичным полям одного скрипта из другого скрипта
Привет. Скрипты пишу на CSharp. В одном gameObject (назовем его HelloObject) есть два скрипта -.

Unity анимация 3D персонажа
Всем привет! Мне нужно для персонажа сделать анимацию. Перезарядки оружия, рубки дерева и другое.

Движения 3D персонажа на Unity
Помогите пожалуйста с кодом я его уже 6 часов пытаюсь написать. Напишите пожалуйста. Заранее вам.

Проблема передвижение персонажа в Unity
Привет) Написал код для передвижения персонажа от первого лица. Создал два скрипта отвечающие за.

есть прогресс, ошибка осталась, но другая

Это обычно значит что поле или объект не статично-ен, что и указано в ошибке, решается обычно явной ссылкой на объект. Как я понимаю Rigidbody2D принадлежит объекту на который накинут скрипт, значит нужно либо явно указать переменную Rigidbody2D в скрипте, как явный компонент этого объекта. Если интересно, это делается через метод любого компонента, в вашем случае Rigidbody2D GetComponent(«Тут_текстом_название_Компонента«)

Либо как то по другому.
(Как то по другому это объявить поле статичным вместе с со всем остальным, но я честно говоря не оч. сведущ поможет ли это)

Добавлено через 5 минут
Чтоб не улетел за пределы экрана, нужно создать привязанные к краям камеры объекты, у которых прописаны компоненты коллайдера. На сам объект нужно наложить Коллайдер. Есть урок в котором объясняется работа коллайдеров, но в API Все и так прописано по их поводу.
По поводу мыши не подскажу к сожалению.

Источник статьи: http://www.cyberforum.ru/unity/thread2231880.html

Как в unity 5 написать скрипт на экран выбора персонажа

Экран выбора персонажа

Egoor Дата: Вторник, 05 Июля 2016, 00:43 | Сообщение # 1

Для очередного своего проекта возникла необходимость сделать экран выбора персонажа, например, как в игре Crosy Road.
Было очень лень и я решил поискать в Unity Asset Store готовый вариант, но все они платные, а в каждом из нас живет скупердяй. Вот и решил запилить небольшую заготовку для простого создания этого экрана.

Результат Демо сцены можно посмотреть на видео или скриншотах. Сначала демонстрируется вертикальная ориентация, а затем горизонтальная.
Персонажи представлены в виде GameObject. Никакого UI в анимациях нет, так что производительность отличная.

Скрипты:
CharacterSelection.cs — основной скрипт.
CSCallback.cs — скрипт с колбеками. Можно использовать для своих целей, например, менять цвет у кнопок при определенном действии, добавить анимацию, подключить оплату, проверку и вычет внутренней валюты и т.п.

Список функций CSCallback:
OnInit() — вызывается при инициализации
OnShowSelector()/OnCloseSelector() — вызывается при открытии/закрытии окна выбора персонажа.
OnSwipe(int index, Character character) — вызывается при прокручивании списка персонажей. index — индекс персонажа, character — персонаж.
OnClickToSelectCharacter(int index, Character character) — вызывается при нажатии на кнопку выбрать персонажа, если он открыт, или кнопку покупки, если закрыт.

Каждый элемент массива персонажей типа Character содержит в себе:
-Объект персонажа
-Имя
-Описание
-Цена
-Открыт/закрыт

Скрипт содержит достаточное количество настроек для кастомизации:



Короче, делал для себя и для других. Если кому поможет, буду рад, но так же прошу уважать безвозмездность и не выкладывать никуда ассет. Батек программирования тапками прошу не кидать, а тыкнуть пальцем в недочет.

Источник статьи: http://gcup.ru/forum/59-79301-1

Как работает Unity Character Controller (Контроллер Персонажа)?

Команда Unity3D заботится о рядовых пользователях и разработчиках игр. Поэтому в Unity была введена интересная система, называется она – Character Controller, а по русски – Контроллер Персонажа. Что же она делает и для чего вообще нужна? В основном она используется для управления персонажем от первого или третьего лица без использования физики Rigidbody.

Итак для начала нам следует подготовить сцену. Создадим Terrain, Меню GameObject>3d Object>Terrain

И создадим заготовку нашего персонажа. Для этого опять, Меню GameObject>Create Empty и назовем его Player. Затем делаем нашу камеру дочерней нашему свежесозданному Player.

Теперь добавим плееру компонент Character Controller. Для этого в окне инспектора нажмем кнопку Add Component и в появившемся списке в пункте Physics нажмем на Character Controller.

Когда контроллер персонажа добавлен к нашей заготовке, рассмотрим подробнее поля его настроек.

Slope Limit: этот параметр ограничивает возможность персонажу взбираться на различные препятствия. Например, по умолчанию стоит число 45, это значит, что если угол препятствия больше 45 градусов, то персонаж на него не сможет взобраться.

Step Offset: персонаж будет подниматься по лестнице, только если он ближе к земле, чем указанное значение.

Skin width: 2 коллайдера могут пересечься друг с другом на глубину, равную значению Skin Width.

Min Move Distance: если персонаж пытается переместиться ниже указанного значения, он не будет двигаться вообще.

Center: сдвиг коллайдера контроллера.

Radius: радиус коллайдера контроллера. Определяет, насколько жирный получился персонаж.

Height: высота коллайдера. Ну и, соответственно, высота контроллера. Например, если сделать это значение выше высоты дверных проемов, то персонаж просто застрянет в них.

Пока все значения оставим по умолчанию. В дальнейшем можно поменять их для лучшей работы контроллера. И как, это не странно, подготовка персонажа готова. Нам осталось написать небольшой скрипт управления камерой и нашим контроллером и персонаж будет готов.

Создадим новый скрипт под названием Player. Этот скрипт нам нужен для отдачи команд CharacterController, который и будет их выполнять, двигая и поворачивая персонажа. Для этого выберем в иерархии нашего персонажа и в инспекторе нажмем Add Component. Далее, в конце появившегося списка, нажимаем New Script, в появившемся поле ввода вводим название скрипта, в нашем случае – Player.

Завершающие действие – это кнопка Create and Add. Нажимаем! Отлично, скрипт создан и добавлен к нашему персонажу!

Откроем его, кликнув по его имени два раза.

В этом скрипте нам надо обьявить три переменные. Первая – это ссылка на CharaсterController. Вторая – скорость движения. Третья-скорость поворота. И укажем им значения по умолчанию 1 и 3 соответственно.

В методе Start, который, как мы знаем, вызывается при старте сцены, добавим строку, которая найдет и добавит компонент CharacterController к нашей переменной. Конечно же, при условии, что он присутствует на том же GameObject что и наш скрипт.

Теперь переходим к методу Update. Этот метод вызывается каждый кадр. В него для начала добавим строку, которая поворачивает наш персонаж вокруг оси Y, посредством клавиш leftArrow и RightArrow.

Затем мы задаем, куда нам двигаться. Точнее – вектор направления. Он у нас forward или z.

Затем мы устанавливаем скорость движения. В зависимости от того, какая клавиша нажата, она положительная или отрицательная. То есть вперед и назад.

И наконец, собираем все это вместе и передаем на Character Controller.

Сохраняем наш скрипт и переходим в Unity. На нашем персонаже должно быть два скрипта Charaster Controller и Player.

Жмем Play и стрелочками на клавиатуре двигаем и поворачиваем нашего персонажа. Урааа, побежали!

Источник статьи: http://unity3dschool.ru/kak-rabotayet-unity-character-controller.html

Создание игры на ваших глазах — часть 8: Визуальное скриптование кат-сцен в Unity (uScript)

В одной из предыдущих публикаций я рассказывал, что мы прикрутили к нашей игре язык Lua для скриптования различных сценок. Однако, попользовавшись им какое-то время, мы поняли, что порой написание таких скриптов превращается в довольно сложночитаемый и сложноотлаживаемый код.

И мы задумались о визуальном подходе. В этой статье я расскажу о нашем знакомстве с средством визуального скриптинга для Unity — «uScript», о его возможностях и расскажу о нашем опыте.

Да, на скрине выше — реальные скрипт и схема.

Введение.

Итак, давайте для начала посмотрим на то, что было. Ниже приведен реальный скрипт, создающий двух персонажей на экране, рисующий простенький диалог, дающий юзеру выбор из 2х вариантов и ветвящийся в этом месте.


В принципе, в скрипте выше нет ничего страшного. Но представьте, что у вас не 1 ветвение, а два. Представьте, что вам нужно проверять какие-то игровые параметры и ветвить скрипт исходя из них. Это очень быстро может стать ненаглядным.

Именно в такой момент нам остро захотелось визуализации.

Посмотрев несколько плагинов для юнити, мы остановились на uScript. Он очень мощный, гибкий, и при этом просто расширяемый. Кроме того, он создает минимальный impact по быстродействию, т.к. на этапе сохранения схем сразу же компилит их в C#, т.е. для Unity скрипт собранный в таком редакторе не очень отличается от скрипта, написанного руками на шарпах.

Давайте сразу приведу скрин того, во что превратился вышеприведенный LUA-скрипт. (картинка кликабельна)

Выглядит немного громоздко, но зато сразу наглядно. Когда, кто и где создается, что делает, а главное видны ветвления.

Вот, например, в нашем случае игрок может выбрать 1 ответ из двух возможных. В игре это выглядит так:

И сразу видно, что произойдет при выборе ответа №1 и ответа №2. А если таких ветвлений будет больше — то тем более схема не потеряет наглядности.

Принципы uScript.

Давайте быстро пробежимся по тому, из чего состоит схема. Собственно, основные модули (в терминологии uScript они называются «nodes») — это событие (с него обычно начинается скрипт или цепочка), action и переменные.

У action’он есть вход (обычно 1) и выход(ы). Например, у самого простого действия 1 вход и 1 выход. А у какого-нить блока условия — уже будет два выхода, например.

Снизу блока подключаются переменные. Треугольник означает, что в переменную будет произведена запись (output).

Например, в этом примере мы создаем персонажа (с помощью блока «Create char»), а потом выставляем ему же зеркальность в «true» (с помощью блока «Mirror»):

Кстати, все переменные могут иметь названия (в нашем случае «с1»). И все переменные одного типа с одинаковым названием будут синхронизированы в пределах одного скрипта (схемы). Т.е. пример выше совершенно идентичен такому:

Сделано это чтобы избавить вас от необходимости тянуть связи через два экрана.

Кроме того, если поставить галочку «expose to Unity», выбранная переменная станет public и будет видна другим скриптам (как визуальным, так и вашим рукописным). Массивы так же поддерживаются.

Немного практики.

Все модули, которые вы видите на схеме — самописные. И были написаны за 1 вечер. Давайте посмотрим на их код.

Рассмотрим сначала что-нибудь очень простое. Например, action, который называется «Start fight». Он начинает бой (по сути, вызывает метод игровой логики) и принимает два параметра — айдишник боя и айдишник соперника.

А теперь давайте усложним. Допустим, мы хотим проиграть какую-либо анимацию. И хотим иметь два выхода. Один — сразу, а второй, который запустится только когда анимация проиграется до конца.

Справа вы можете видеть блок с конфигурацией блока, куда вы вбиваете значения. У блока 3 входных параметра — CharacterGfx (непосредственно персонаж, которому мы проигрываем анимацию), Animation (название анимации) и Mirror (необходимость зеркаленья). И у блока есть два выхода: Out (выход сразу же) и Finished (только когда анимация закончится).

При этом переменная «Mirror» является энумератором с параметрами «да», «нет» и «не менять», которая представляется в виде dropdown-списка в окне свойств.

Код особо сложнее не стал:

Еще момент. Во всех блоках выше выход (Out) вызывался сразу же после выполнения кода блока.

А что если мы хотим сделать асинхронный action? Например, загрузку сцены. И чтобы выполнение нашего визуального скрипта приостановилось до того момента, пока асинхронно не прогрузится сцена.

Делается это так же просто. Вместо строчки
которая являлась флагом «скрипт всегда готов к выходу», мы пишем:
тем самым говоря — «Out теперь является хэндлером, а не вечно-истинным boolean’ном».

А далее в коде в тот момент, когда вы будете готовы продолжить выполнение скрипта, вам нужно вызвать этот хэндлер ровно так же, как было с Finished в предыдущем примере:

Не обязательно писать код самому.

Все, что я привел выше — было написано нами, чтобы собрать все, что нужно в одно удобное место. Но это зачастую не обязательно. В uScript есть такая вещь, которая называется «reflection». На деле это означает, что uScript автоматически сканирует вашу сцену и вытягивает из нее все объекты, а так же их публичные методы и параметры, до которых может дотянуться. И предоставляет к ним доступ.

Например, вот так выглядит блок-reflection на метод GetComponent() камеры на сцене:

(внизу вы можете видеть блок «properties», где задаются все параметры метода)

Выводы.

Тулза нам однозначно понравилась и мы будем юзать ее дальше. Вообще, некоторые люди умудряются с помощью нее писать целые игры, но это уже чересчур.

Насколько глубоко мы сможем ее заюзать пока не знаем. Например, еще не решили, переписывать ли логику триггеров квестов с нашей lua-ориентированной на визуальную.

Но вот для скриптования кат-сцен и диалогов будем юзать однозначно.

Из минусов могу выделить только один (который является следствием плюса) — как я писал выше, uScript преобразует визуальные схемы в C# код. А следовательно каждая модификация схемы потребует перекомпиляции проекта.

В остальном — очень советую присмотреться к этому инструменту, если вы хотите скриптовать подобную логику. Так же, насколько я знаю, этот инструмент активно используют для написания AI.

Кстати, если вам нужна именно для скриптования поведения и взаимодействия объектов на сцене (например, триггеры на столкновения и т.п.), то присмотритесь к PlayMaker. Он больше ориентирован именно на событийную модель.

Источник статьи: http://habr.com/ru/post/244493/


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии