Мой врыв (почти с ноги) в Unity

Мой врыв (почти с ноги) в Unity

Журнал разработки новой игры. Пока называется Memo. А может и и не пока...

После головоломки с уровнями на основе тетриса #Tetra7Adventures , платформера (подрывающего жопы) #Skazka и таймкиллера - собиралки предметов #Skazkamini , а так же нескольких недоделок типа три-в-ряд или Salvations решила наконец взяться за тот жанр, который по настоящему люблю. а именно квесты, они же point and click.

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

Все свои игры, которые написала ранее в чём то воспринимались мной как некая тренировка. Как будто не взаправду. Хотя вкладывала в них много сил и любви и времени, и старалась сделать по максимуму. Но всё-же именно квест - тот жанр в который люблю играть, понимаю что хотелось бы увидеть в игре (всё лучшее сразу 😄).

Но речь сейчас скорее будет идти, не про саму игру. О ней рановато, а о своих шагах в Unity. Первые шаги, первые препятствия...

Итак. После скитаний по разным средам разработки меня наконец прибило к Unity. Решила таки попробовать его и пока особо уникальных открытий не сделала. Хотя одна наработка уже есть. Ниже об этом подробнее:

Первые проблемы с которыми я столкнулась - это пролаги в анимации персонажа, но добрый человек подсказал где искать настройки задержек между переключением анимаций (Попробуйте нажать на стрелку, которая между прямоугольниками в аниматоре.) Эта проблема была решена. Так же изначально персонаж ходил стрелочками, но немного поразмыслив решила сделать перемещение по клику мышью. Сразу как задел для android версии. Фон и персонаж тут пока не мои, просто картинки для теста.

Следующим добавила механизм, который не давал камере двигаться вне фона. А так же который смотрит когда должна двигаться камера, а когда только персонаж. Добавила инвентарь, но тут пока в него только могу залетать предметы. Много было вопросов по кликам по объектам UI. Читала, смотрела уроки и несколько раз переписывала.

моё инженерное решение по анимации
моё инженерное решение по анимации

Дальше самым часто выискиваемым мною вопросом встала анимация дверей. У меня дом с кучей этажей и на каждом много дверей и многие будут открываться. Да и в целом будут предметы с простой анимацией, а точнее просто сменой картинок. Animator и animaton делать на каждую дверь - глупо. Это хорошо для персонажа у которого много анимаций под разные события, или как я смотрела в уроках для каких-то сложных предметов. Создавать варианты animation, это тоже значило плодить кучу сущностей, когда по сути у меня есть атлас с картинками, и мне просто надо по нему бежать и всё это проще написать кодом. Было принято решение утащить часть кода из старых игр. А для объекта, например двери, в классе просто указывать массив спрайтов для анимации. Когда нужна анимация, то подменяю основной спрайт по таймеру.

Далее разобралась как переходить между сценами и сохранять при этом персонажа и инвентарь.

При записи видео стараюсь по максимуму использовать все старые и новые механизмы в игре и так отлавливаю всплывающие баги. Так что запись видео очень помогает)

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

На этом пока всё. Впереди много работы и думаю еще много открытий и решений)

О разработке часто и много в телеге->

Вообще все ссылки тут ->

2121
15 комментариев

В Update не надо делать GetComponent, это относительно затратная операция. Лучше это сделать в Start(), которая выполняется до начала выполнения Update() и кэшировать.
То есть сделать что–то типа

private SpriteRenderer spriteRenderer;

public void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}

После этого в spriteRenderer будет ссылка на этот компонент, который можно будет использовать легко в Update.

Поначалу это незаметный удар по производительности, но если объектов с поиском компонентов будет много в сцене, это может привести к сбору мусора, что всегда приводит к снижение FPS и небольшим тормозам на небольшое время.

5
Ответить

Спасибо большое за уточнение. Обязательно учту.

3
Ответить

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

Я в частности вот про это - https://assetstore.unity.com/packages/tools/game-toolkits/adventure-creator-11896

Для point and click очень сильно облегчает жизнь.

2
Ответить

Я извиняюсь, а в чем прикол получается?
Ну будет еще один клон (причем буквально), с теми же механиками. Работать с чем-то готовым в попытках кастомизировать может еще сложнее оказаться.

Я без наезда, искренне не понимаю

2
Ответить

Спасибо. Подумаю

Ответить

Лайк за пенпайнаплаплпен, когда ручка в яблоке оказалась, сразу понял о чём речь)

2
Ответить

Лайк за внимательность)

2
Ответить