Pull to refresh
17
0
Вячеслав Ильин @Charoplet

Разработчик игр

Send message

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

Безответственные преподаватели рекомендуют значения фразовых глаголов «просто запоминать», не пытаясь понять их внутреннюю логику.

Звучит грубовато. Конечно, некоторые преподаватели могут быть безответственными и скидывать с себя тяжесть объяснения, но я думаю, что причина совета «просто запоминать» фразовые глаголы как раз происходит от тех сложностей, которые вы сами же описали в статье. Например:
Так же и в английском значение «до конца, полностью» несут не только частицы in и out. Ещё up, например

Что ж, мы имеем минимум 3 частицы для значения «до конца». Это уже осложняет понимание, чем если бы была только одна частица. Еще и сами по себе частицы «in» и «out» означают противоположное направление, а тут мы имеем «fill in» и «fill out» — и это одно и тоже! Разница лишь в том, говорит ли британец или американец.
Или вот еще:
Поэтому сочинять фразовые глаголы самостоятельно, опираясь на значения частиц способны только носители языка, потому что они постоянно держат в голове огромный корпус традиционно устоявшихся сочетаемостей

Как же тогда русскоговорящий преподаватель объяснит русскоговорящему ученику весь смысл фразовых глаголов? Может только часть из них сможет, а остальную часть — только запоминать.

P.S. Я не преподаватель, просто уже сталкивался с подобными статьями, которые пытались все легко объяснить, но на деле оказывалось, что все равно многое надо помнить, и что из всех правил есть исключения. Но за статью все равно спасибо!
Странно, что статья так заплюсована. Видимо еще для многих людей волшебное слово «халява» заставляет забыть обо всем, в том числе и о последствиях. А последствия очевидны — никто бесплатно безлимитное облако давать не будет, и если проект взлетит, то Телеграм быстро введет лимиты на загрузку файлов. И это повлияет на всех, в том числе и на нормальных пользователей, которые для хранения файлов используют подходящие для этого сервисы.
Поддерживаю, самому приходилось заниматься проектами, которые собирались под несколько разных платформ (пк, айос, андроид), разные маркеты (аппстор, гуглстор, самсунгстор), разную монетизацию (премиум/ф2п), разными фичами (с мультиплеером/без). Это все в рамках одного проекта, и API Юнити там явно не хватало. Плюс встречались очень специфичные вещи. Например, одна из СДК для мобильной аналитики тупо не давала собирать билд под ПС4. Ее приходилось физически убирать из проекта перед таким билдом (настройки плагина в инспекторе не помогали). Это, конечно, скорее косяк СДК, но пока они его поправят, могут пройти годы, а билды иногда каждый день нужно собирать, так что собственная автоматизация тут спасает.
Например, «зашитые» в анимацию стартовые координаты: если в анимации объект начинает свое движение с позиции (0,0), то при применении этой анимации к объекту, он прыгает на (0,0) в независимости от своего текущего положения. Вы скажете: так это же надо было скачать <plug-in name> из Asset Store! Возможно…

Ну, анимация меняет LocalPosition так, как вы прописали, и по-моему — это логично. Если вы хотели, например, сдвинуть объект на 5 единиц по оси Х, независимо от того, где он находится — то надо было просто сделать 2 объекта: родительский и дочерний. На дочерний вешаем анимацию. Родительский размещаем на сцене так, как захотим. И все прекрасно будет перемещаться, без прыганий.
Еще можно было самому двигать объект в Update (но это на самом деле не очень удобно… тут на самом деле удобнее использовать какой-нибудь tween-плагин. DoTween, например).
Может так и лучше изучать, но лично меня смущает, когда сперва говорят, что чего-то нет, а потом выясняется, что оно есть и вполне используется.
1. В английском не бывает предложений без глагола. Восклицание – может быть, но не самостоятельное предложение. Хотите выучить английский – перестраивайтесь. Предложения типа: Поздно. Я дома. Холодно. – нет такого. («А как же тогда?» – чуть позже.) Итак, глагол всему голова.

2. Обратная сторона монеты: без подлежащего предложений тоже не бывает. Безличные предложения оставьте в русском («Стемнело. Похолодало. Убили!») В английском принципиально важно, чтобы был кто-то в предложении, кто это действие выполняет.

Зачем же так категорично, все бывает, особенно в разговорной речи и в песнях. Смотрю фильмы и сериалы на английском и очень часто вижу предложения типа: «Cold», «Funny», «Done». Ну ладно, это очень короткие предложения, и можно их не считать полноценными, но люди так общаются, и вы тоже так можете общаться. Кроме того, бывают и более длинные примеры: «Oh my God!», «What a beautiful day!».
Я понимаю, что ваши советы для начинающих, и они скорее академичные, правильные. Но знаете, я довольно долго учил английский вот так, академично, а потом понял, что реальный английский плохо знаю как раз из-за таких строгих правил, вдалбливаемых в школе. Что всегда важен порядок и состав слов предложений, что в английском очень много времен и все их надо помнить и использовать, что нельзя опускать слова в предложениях. В реальной жизни в этих правилах слишком уж много исключений и к ним надо привыкать чем раньше, тем лучше.
Кроме того, получится велосипед. Зачем делать свое подобие DI-фреймворку, если уже есть готовые и более продвинутые решения? Разве что вам нужно реализовать какие-то специфичные фичи, которые в готовых фрейворках никак не сделать.
А когда люди уходят от Синглтонов, они идут в сторону Инжектора Зависимостей. Что на мой взгляд оставляет проблему тесной связи, но в другой обёртке.

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

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

Почему тогда Юнити делают также?
Приходилось вручную удалять файлы и папки в Xcode проекте

Такое можно автоматизировать пост-билд скриптом
Добавлю:
  • каждый класс должен быть наследником MonoBehaviour, даже если это класс никогда не будет компонентом игрового объекта
  • если тебе нужно, чтобы некоторые классы при инициализации выполняли одну и ту же логику — не делай базовый класс. Просто копипасть эту логику в каждый класс, потому что наследование, полиморфизм — это все ужасно медленно и сложно
  • для доступа к объекту активно используй transform.GetChild(i). Можно даже несколько раз: transform.GetChild(2).GetChild(4).GetChild(0).GetChild(0). Если кто-то поменял иерархию объектов и все сломал — сам виноват.
  • если ты вставил хак или костыль из-за производительности/бага в ОСи/бага в Юнити — не оставляй никакой комментарий на этот счет. Все всегда будут понимать, что этот костыль нужен, и никто его не уберет.
Может тогда помог бы IL2CPP?
Зачем весь мир реалтайм на миникарте рендерить? А про масштаб проблемы не вижу: делаем камеру ортогональной и меняем ее Size как нужно.
Ваш же метод тоже даст лишние дроуколлы
Ответил выше про рендер. А какой инструмент вас смутил? Render Texture? Читаем мануал юнити: Render Textures are special types of Textures that are created and updated at runtime.
Рендерится один только слой. Я попробовал закинуть на сцену побольше роботов (30) и посмотреть изменение фпс… не увидел просадки. Точнее, просадка была, но не из-за миникарты, а из-за бОльшего количества образовавшихся теней от объектов, что неудивительно. После оключения теней разницы в фпс не вижу.
«Не работает» — это значит «не бежит» или что?

Information

Rating
Does not participate
Location
Рига, Латвия, Латвия
Date of birth
Registered
Activity