Ответы пользователя по тегу Unity
  • Как определиться с путём развития в GameDev на Unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Игра - это не просто комбинация механик.
    Это искусство.
    Вот вы умеете рисовать, например? А в анимацию? А игра - это более сложное искусство, совмещающее в себе и нарратив, и геймплей, и музыку, и всё остальное, чтобы это всё красиво сочеталось и переплеталось, и вызывало особые эмоции у игрока.

    Поэтому для начала определитесь с целью. Если это - просто хобби с целью практиковать программирование, то идите путём написания пятнашек и тетрисов для начала. Если же цель - реально заработать денег, то откажитесь от разработки игры в одиночку, изучите экосистему геймдева, этапы разработки, т.е. основы основ. Выберите себе конкретную роль (например, программист или геймдизайнер) и скооперируйтесь с другими людьми в каком-то проекте. Если хотите быть продюсером, то также откажитесь и от программирования, занимайтесь менеджментом, наберите команду, считайте деньги (бюджет, расходы, общение с инвестором и т.п.). Время обычно считает ПМ. В маленькой команде можно и совмещать роли, но это отдельная история. Классическая микро-команда для создания прототипа - это художник, программист и геймдизайнер. И если вам кажется, что вы со всем сможете справиться в одиночку, то это вряд ли; прецеденты есть, но они очень редкие; на 1 известную вам успешную инди-игру приходится 1000 неудачных инди-игр, о которых вы даже не слышали, плюс ещё больше игр, которые просто не дошли до публикации.
    Ответ написан
  • Как избежать ограничения числа int в unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вместо int используй long :)

    long x = 2147483648L;
    Ответ написан
    Комментировать
  • Что учить дальше после основ c# для unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если игры сами делать будете, то дальше учить геймдизайн. Можно по книгам, которые можно найти в гугле. А если гуглить не получается, то нужно учить, как гуглить и вообще работать с информацией.
    Ответ написан
    Комментировать
  • Как проигрывать анимацию при взаимодействии с объектом?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Чтобы сделать игру, тебе нужна команда. Чтобы команда (да и ты сам) понимала, что вообще нужно делать, тебе нужно написать концепт, а потом и геймдизайн-документ. А для этого в первую очередь нужно научиться грамотности и пунктуации в русском языке. Иначе тебя никто не будет воспринимать всерьёз. Последовательность в изложении мыслей тоже не лишней будет, иначе опять-таки никто тебя не будет понимать, в том числе и с Unity будет сложно "общаться".
    Ответ написан
    3 комментария
  • Как сделать нормальное сохранение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Что-то нужно сохранять, а что-то - нет. Например, не нужно сохранять капли дождя, которые случайным образом рисуются по всему экрану. Игра не сможет сама догадаться, что нужно, а что - нет, так что именно тебе предстоит всё продумать.

    Рассматривай каждый тик (или кадр) игры, как отдельное состояние. Конечно, если игра в реальном времени, а не пошаговая (иначе - каждый "шаг"). Так вот, тебе нужно решить, что войдёт в это состояние, и что не является значимым для геймплея. Например, если ты не хочешь, чтобы игрок "читерил" против рандома, загружаясь много раз и повторяя одни и те же действия, то в сейв должен пойти сид, чтобы при каждой загрузке повторялись бы одни и те же случайные действия. То же касается и анимаций, если они являются частью геймплея, физики.

    В общем, тема сложная. Если будешь дальше гуглить, то используй слово "сериализация".
    Доки: docs.unity3d.com/Manual/script-Serialization.html
    Ответ написан
  • Как синхронизировать пулю с сервером?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это очень сложная задача (с точки зрения геймдизайна).

    Решение обычно сводится либо к отсутствию пули, либо к самонаводящейся пуле, либо к отсутствию точной синхронизации пули между клиентом и сервером. Ну либо в требованиях к игре нужно прописать крайне низкий пинг и отсутствие потерь пакетов.
    Ответ написан
    1 комментарий
  • Как сделать смерть при падении относительно своих координат?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зачем находить? Придумай.

    Решение навскидку:
    У персонажа должно быть два состояния:
    1) когда он на платформе
    2) когда он в воздухе (т.е. летит)

    Таким образом, как только персонаж каким-либо образом оторвался от платформы (прыгнул или шагнул с края), в этот самый момент нужно запомнить координаты и привязать к персонажу. Например, в переменной lastGroundPos

    Дальше, надеюсь, всё очевидно. Как только перс приземлился, считаем разницу координат по Y, и либо вычитаем здоровье, либо убиваем, - что душе угодно.
    Ответ написан
    Комментировать
  • Как сделать 2D спрайт гибким, подобным верёвке?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сама по себе идея - сложная. Поэтому, думаю, более правильным будет не искать готовое решение, а сделать самому. Уж слишком много нюансов будут касаться именно вашей игры: как именно будет работать физика верёвки, насколько она должна быть реалистичной, нужна ли (и какая) оптимизация и т.д. Например, будет ли персонаж падать, если ноги запутаются в верёвке - решать только вам.

    В игре Journey (2012 года) персонаж как бы перепрыгивает через свой собственный длинный шарф, если ради эксперимента попытается споткнуться об него. Однако на шарф компаньона это не действует, и персонаж просто проходит сквозь него. Лень ли это разработчиков, или у них не было выбора, нам уже не узнать.

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

    Хорошая мысль. А зачем менять спрайт? Так даже лучше, потому что вместо спрайта верёвки вам теперь нужен спрайт лишь одного звена, который можно просто размножить.
    Ответ написан
    1 комментарий
  • Не могу установить Юнити?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Да, не можешь.
    (это ответ на вопрос)
    Ответ написан
    Комментировать
  • Почему именно у меня всегда появляются какие то ошибки при установки Unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Почему именно у меня всегда появляются какие-то ошибки при установке Unity?
    Это иллюзия.
    На самом деле не только у вас появляются какие-то ошибки при установке Unity.

    Это потому, что вы знаете лишь те проблемы, которые случаются именно с вами. И вы не знаете проблем, которые случаются с другими людьми. Отсюда возникает иллюзия, что с другими ничего плохого не происходит, а все беды валятся лишь на вас. Ведь по умолчанию проблем быть не должно.
    Ответ написан
    Комментировать
  • Как правильно проверять столкновение в Unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно логически принять и потом соблюдать одно из двух условий:

    а) Объекты со здоровьем сами следят за своим здоровьем. И никакой другой объект, кроме них, не в праве это делать.
    spoiler
    То есть в коде снарядов нельзя писать код, уменьшающий здоровье других объектов.

    б) Только оружие и снаряды могут уменьшать здоровье другим объектам.
    spoiler
    То есть в коде объектов со здоровьем нельзя писать код, уменьшающий их собственное здоровье.
    Ответ написан
    2 комментария
  • Где ошибка в изменении угла вылета снарядов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А с чего вы взяли, что ускорение зависит от положения турели?

    Ведь AddForce добавляет ускорения в мировых координатах, независимо от поворота родительских объектов. В этом и ошибка.
    Ответ написан
    3 комментария
  • Можно ли открыть установленное приложение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно, но универсального способа нет.

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

    В идеале, конечно, картинки PNG должны ждать вас на блюдечке с голубой каёмочкой (в отдельной папке взламываемой игры). Но раз на раз не приходится. Так что ковыряйте, смотрите, как устроена игра. Если она на Unity, который вы знаете, то будет проще ковырять.
    Ответ написан
    3 комментария
  • Что делать если не устанавливаеться Unity?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Полная переустановка ОС (с форматированием диска) должна помочь.
    Это ответ на вопрос, что делать.

    Ну а если хочется малой кровью обойтись, то придётся исследовать, смотреть и пробовать то да сё. Отключить антивирус, почистить папку Program Files, реестр и т.д.
    Ответ написан
    Комментировать
  • Изучение Unity самостоятельно или по курсам?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Чтобы "просто освоить gamedev", я бы не с Unity начинал и даже не с программирования.

    А попытался бы ответить на "простой" вопрос: что именно делает интересную игру интересной?
    Ответ написан
  • Какие есть направления импульса ForceMode2D.Impulse?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    По-всякому можно. Например, так:
    (transform.up + transform.right) * StrengthDash

    Но это чётко по диагонали (45 градусов). Иначе нужен свой множитель по каждой оси.
    Ответ написан
    1 комментарий
  • Не могу создать (=> запустить) проект Unity. В чём может быть проблема?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    • Попробуйте удалить проект из Unity Hub, а потом снова добавить его туда.
    • Проверьте, что проект действительно находится по указанному пути на жёстком диске. И на всякий случай, что это не съёмный диск.
    • Попробуйте удалить все прочие версии Unity, чтобы осталась только одна версия.
    • В крайнем случае непосредственно запустите Unity напрямую с указанием папки проекта в параметрах запуска (только укажите ваш путь к папке Unity):
      С:\soft\2019.4.11f1\Editor\Unity.exe -projectPath D:\New\Game
      Это можно сделать из консоли, либо через создание ярлыка, либо через создание батника.

    Ответ написан
    Комментировать
  • Как редактировать код игры, будучи непосредственно в этой игре?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если это не для вашего удобства, а для удобства пользователей, то лучше Lua, а именно MoonSharp. Язык простой, учится легко, и пользователю не нужно глубокого понимания C#.
    Ответ написан
    Комментировать
  • Персонаж иногда прыгает на двойную высоту. Как это исправить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    private void Jump() {
            rigidbody.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }

    А теперь сделайте так, чтобы двойной вызов этой функции давал бы то же ускорение, что и единичный вызов. Самое простое - это ограничить ускорение персонажа вверх некой константой. Если ускорение превышает порог, то обрезать до этого значения.
    Ответ написан
    Комментировать