• Что делают программисты на Unity целый день на работе?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Обычно игровая логика (это к примеру):
    - управляемый персонаж
    - способность персонажем взаимодействовать с миром (предметами)
    - какие-то подвижные элементы в игре
    - АИ врагов и НПС
    - кнопки интерфейса, инвентарь.
    И всё... Так если ты умеешь уже это делать и ты "типо программист на Юнити", то ты напишешь всё это гораздо раньше, чем начнется твоя первая зарплата. А чё потом делать?

    Большинство программистов один элемент из этого списка качественно за месяц сделать не в состоянии.

    Собственно, это и ответ. Они делают всё перечисленное в списке (и ещё кучу всего), только значительно дольше, чем кажется неопытному человеку.

    P.S. для примера. Моей первой работой была вот эта игра: https://en.wikipedia.org/wiki/Order_of_War

    Первые задачи на ней были примерно такие:

    - реалистичный поворот башни танка, синхронизированный с логикой ~ 3 недели, дошло до того, что рисовал графики в excel, чтобы обосновать, почему именно такая визуализация правильная и почему нельзя сделать лучше.
    - интерфейс управления отрядами (чтобы формацию сохраняли, не перестраивались лишний раз, etc) ~ месяц.
    - оптимизация цикла обновления графики с двухпроходного на однопроходный ~ два дня :-D
    Ответ написан
    2 комментария
  • Как заставить проходить коллайдеры сквозь друг друга?

    Reynard13
    @Reynard13
    java developer
    Или в настройках физики (Physics / Physics2D) настроить маску коллизий.
    Она отвечает за столкновения layer'ов.
    Ответ написан
    1 комментарий
  • Как динамически создать GameObject со спрайтом в UnityScript?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Константин Китманов дело говорит, обычно в таких ситуациях используют префабы. Если вас по каким-то причинам они не устраивают, вы можете создавать объекты кодом с помощью конструктора GameObject и AddComponent. Пример на C#:
    public Sprite sprite;
    
    private void Start()
    {
        var go = new GameObject();
        var spriteRenderer = go.AddComponent<SpriteRenderer>();
        spriteRenderer.sprite = sprite;
    }

    Но такой вариант имеет смысл, только если у вас нет ссылки на спрайт, например, вы качаете картинки из интернета. Если ссылка есть, то проще держать ссылку сразу на префаб.
    Ответ написан
    Комментировать