Делаем Тунца - два!

Ну что же, после некоторого перерыва - продолжаем.

Начало здесь: http://pikabu.ru/story/delaem_tuntsa__raz_4489410

Мы остановились на том, что у нас есть тюлень и есть море. А сегодня будем делать так, чтобы тюлень по этому морю не просто плыл, но мог и нырять.

Для удобства я создал пустой объект и собрал в него все элементы моря. А теперь создаем в этом нашем общем море еще один элемент - тоже пустой объект и в нем добавляем один очень интересный компонент:

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

И еще один компонент:

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

Теперь настраиваем в Buoyancy Effector параметр Surface Level так, чтобы поверхность воды примерно совпадало с нижней линией волн. А в Box Collider 2D настраиваем его размеры так, чтобы всё море до дна было "водой", которая будет выталкивать нашего тюленя к своей поверхности.

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

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

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

После добавления компонента Rigidbody2D добавляем еще один - Circle Collider 2D:

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

И настраиваем размер коллайдера:

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

Теперь пришло время добавить нашему тюленю управление. Покуда мы работаем только с компьютером и пока еще не собираемся устанавливать игру на телефон, обойдемся управлением клавиатурой, тачскрин будем добавлять позже. Добавим нашему тюленю новый скрипт:

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

И вот что будет в том скрипте:

Делаем Тунца - два! Unity3D, Android, Windows Phone, Игры, Gamedev, Аркадные игры, Туториал, Длиннопост

Настройки Buoyancy Effector, массу тюленя в его Rigidbody2D, а так же нижнюю и верхнюю границу для ныряния в скрипте, в методе FixedUpdate() попробуйте менять, чтобы получить наиболее (на ваш взгляд) реалистичное движение персонажа. На сегодня всё, в следующий раз будем делать первых врагов и пищу тюленя.

Напоминаю, что установить готовую игру, чтобы увидеть результат можно здесь для Андроида: https://play.google.com/store/apps/details?id=com.FRN.tuna

и здесь для Windows Phone: https://www.microsoft.com/ru-ru/store/p/tuna/9nblggh4td3k

Лига Разработчиков Видеоигр

6.6K поста22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

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

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Автор поста оценил этот комментарий

Реклама ?

раскрыть ветку
1
Автор поста оценил этот комментарий

Зачем IsJump имеет доступ public? Если вы хотите что бы другие классы могли знать о значение перемененной? Но думаю другие части кода не будут заставлять "подпрыгнуть" лучше создать поле:
public bool IsJump { get; private set; }
Потом почему ввод игрока и сам прыжок в разных функциях? Вы в курсе, что FixUpdate() и Update() вызываются независимо друг, от друга и при высоких фпс FixUpdate() может вызваться один раз на несколько кадров, а при низких фпс несколько раз за один кадр, а Update() один раз за кадр из-за этого при разных фпс игра может себя вести по разному.
И зачем столько памяти жрать?
Так же зачем проверять находится ли он в прыжке, таким странным способом. Лучше IsJump блокировала рекцию на нажития пробела.

Foo()
{

if(Input.GetKeyDowm(KeyCode.Space) & !IsJump)
{

IsJump = true;
Jump()

}
}

И где-то отслеживать, когда прыжок пройдет и поставить IsJump = fallse;
Хотя в данной ситуации это как из пушки по воробьям.

раскрыть ветку