• Как отписаться от события во время его вызова?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Invoke сохраняет список делегатов во временный массив и вызывает их, в качестве защиты от такого кода. Меняйте логику.
    Ответ написан
    Комментировать
  • Большая ли разница между написанием на UNITY или чистом С++ C#?

    @MarkusD
    все время мелю чепуху :)
    Инструмент всегда выбирается от задачи.

    Первым делом нужно строго сформулировать для себя задачу. Чего ты хочешь добиться?
    Сделать игру? Это не задача. Заработать денег на игре? Это не задача.
    Задачу надо детально формулировать. Например: сделать игру по уже имеющемуся ТЗ в конкретные сроки и с затратами не выше заданного бюджета.

    Исходя из задачи выбирается инструмент.
    Разные инструменты предъявляют разные требования к профессионализму разработчика, бюджету и времени разработки. Разные инструменты влекут разные риски для процесса разработки.
    Выбор инструмента заключается в сведении проф. навыков, бюджета, времени и рисков в одном месте.

    Unity позволяет вести быструю разработку при минимальной квалификации, но влечет риски быстрого изменения системных требований и непредвиденных сопутствующих расходов в местном "магазинчике радостей". Плюс, в определенный момент потребуется заплатить немалые деньги за лицензию.

    Чистый C# требует профессионализма и большого времени на разработку. Профессионализм требуется сразу довольно высокий. Человек должен не только языком владеть, но и быть в состоянии выбрать подходящие сторонние библиотеки для помощи.

    Чистый C++ требует экспертного уровня профессионализма и, буквально, огромного времени на разработку. Незначительного уменьшения времени на разработку можно добиться покупкой сторонних инструментов за довольно большие деньги. Более того, экспертный уровень требуется не только в знании C++, но и в знании сопутствующих разработке игры областей. Математику, звук, графику, сеть и каждую из целевых платформ требуется тоже знать на экспертном уровне. Иначе выбор чистого C++ будет проигрывать выбору чистого C#.
    Современный C# после сборки по своей производительности ничем не отличается от результатов сборки C++, а разработку на C++ вести значительно сложнее.

    Более того, использование чистого инструмента всегда требует от пользователя экспертного уровня знания архитектуры ПО.
    Ответ написан
    Комментировать
  • Какой 34 дюймовый монитор подойдёт для программирования?

    @Arlekcangp
    Разработчик, Лид, Архитектор ПО
    Работаю на 32' дюйма 4K плоском. Всё устраивает в 2016 году уложился в 60 Сейчас цен не знаю, но сомневаюсь что в рублях они упали... Считаю, что для 32 дюймов 4K - это оптимально. Пикcелей ещё не видно, размер шрифта чуть увеличил в windows. Также важное значение имеют яркость и цветовое пространство, что бы монитор не давал "вырвиглазные" цвета. Хотя бы 80-90% sRGB что бы покрывалось. Изогнутость считаю не удобной, т к иногда нужно смотреть на монитор под другим углом, во избежание окосения.
    Ответ написан
    Комментировать
  • Как реализовать код?

    GavriKos
    @GavriKos Куратор тега Unity
    Почитать про интерфейсы в языке c#. Вот они ровно как раз для этого.
    И да, GetComponent работает с интерфейсами.
    Ответ написан
    Комментировать
  • Что происходит с объектом при его отключении через setactive?

    GavriKos
    @GavriKos Куратор тега Unity
    Для отключенного объекта просто перестаюь выполняться все Update и FixedUpdate и
    еще пачка служебных методов. Рендер - это по факту тоже часть апдейта.
    Сам объект при этом жив-здоров, к нему можно обратиться, вызвать методы и прочее. Даже подвигать по сцене можно - никаких проблем.

    Так что с т.з. памяти разница максимальная - уничтоженый занимает 0 памяти, выключеный - всю что ему нужна и может только чуть чуть меньше не выключенного.

    Конечно все чуть чуть может быть сложнее - типа там еще корутины, обновления иерархии (особенно для UI), исключение из графа физики и прочее - но суть та же.
    Ответ написан
    2 комментария
  • Как правильно сделать разные генераторы рандома?

    GavriKos
    @GavriKos Куратор тега Unity
    Используйте не юнитевый, а шарповый рандом - из пространства System. Он умеет в инстансы с разным сидом
    Ответ написан
    1 комментарий
  • Не появляются всплывающие окна на Android в Unity, как исправить?

    @sylniyduxom Автор вопроса
    После долгих поисков я нашёл решение. Для того, чтобы решить эту проблему, нужно прописать все необходимые разрешения в файле AndroidManifest.xml. Тогда при старте произойдёт запрос, и появится предложение разрешить использование файлов
    Ответ написан
    Комментировать
  • Не могу разобраться с input system. Как сделать движение без физики unity?

    Для плавности можно использовать Mathf.Lerp, о нём можно почитать тут: https://docs.unity3d.com/ScriptReference/Mathf.Ler...
    Про MonoBehaviour: при работе в Unity от него полностью никак не избавиться, ведь на объекты навешиваются только скрипты, класс в которых унаследован от MonoBehaviour. Есть, правда, ECS плагины (интересная штука, о ней можно почитать в гугл. От себя рекомендую LeoECS), но даже там для инициализации этого всего используется "бехевиор", так что, как было сказано выше, от него не избавиться
    Ответ написан
    1 комментарий
  • Как найти ближайшее целое число для вещественного, исключая целые числа из списка?

    WblCHA
    @WblCHA
    Округляешь число, проверяешь находится ли оно в массиве.
    Если нет, число найдено.
    Если да, прибавляешь/отнимаешь от числа 1 и ещё раз проверяешь находится ли оно в массиве.
    Если нет, число найдено.
    Если да, отнимаешь/прибавляешь к числу 2 и ещё раз проверяешь находится ли оно в массиве.
    Если нет, число найдено.
    Если да, прибавляешь/отнимаешь от числа 3 и ещё раз проверяешь находится ли оно в массиве.
    И т.д.

    Чередуешь сложение с вычитанием (начинать в зависимости от того, куда было округлено) и на каждой итерации увеличиваешь слагаемое-вычитаемое на 1.
    Ответ написан
    Комментировать
  • Как перейти с Universal Render Pipeline на стандартный (даунгрейд)?

    @AlexandrG44 Автор вопроса
    1. File - Build Settings - Player Settings - Graphics - Scriptable Render Pipeline Settings(первая строчка, меняем на None);
    2. Потом, удаляем пакет в Package Manager(Packages: Unity Registry) (Universal RP).
    3. Если все материалы розовые, смените у всех шейдер на Стандарт. Или удалите все и переимпортируйте.

    Иностранный опыт:
    https://forum.unity.com/threads/remove-srp-urp-fro... (Совет)
    https://answers.unity.com/questions/1750165/removi... (Способ описанный мною, но без деталей)
    Ответ написан
    Комментировать
  • Не работает скрипт движения персонажа. Что делать?

    E1ON
    @E1ON
    Programming, Gamedev, VR
    А почему $$? Мне кажется там должно быть &&
    if (isGrounded && Input.getButtonDown("Jump"))
                Jump();
    Ответ написан
    Комментировать
  • На каких форумах, группах про IT и Gamedev стоит зарегистрироваться?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    самостоятельном изучении юнити, хотелось бы попросить скинуть список форумов,

    Советую почитать данную статью - https://bezugly.ru/blog/trash-info

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

    Для гарантированного успеха советую делить теорию и практику на 80% практики, которая шлифуется 20% теории. Для первоначальных изучений c# тостера хватит за глаза.

    Самая полезная выдержка из статьи:
    Статья без практического применения бесполезна. Но если применять все эти статьи на практике, то не хватит времени на работу.
    Ответ написан
    8 комментариев
  • Где можно продать идею игры?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Идеи не продаются. Ими можно поделиться и потерять)
    Ответ написан
    3 комментария
  • Сколько полигонов/вертексов может быть на модели для игры?

    maaGames
    @maaGames
    Погроммирую программы
    Нет никаких норм.
    Очевидно, что чем меньше, тем будет работать быстрее, но выглядеть будет хуже. Нужно достичь компромиса, когда уже мало, но ещё красиво.
    Ответ написан
    Комментировать
  • Как округлить transform.position?

    GavriKos
    @GavriKos Куратор тега Unity
    Сравнивать флоты как принято сравнивать флоты - с определенным допуском.
    Прям в юнити есть для этого метод Approximatly. Но он может оказаться сильно точным - так что просто сравните модуль разницы с неким эпсилоном
    Ответ написан
    2 комментария
  • Почему юнити жалуется на код?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Нет, ему плохо от этого
    sv.ItsNum.Add(Num);
    Нельзя изменять коллекцию, которую вы перебираете. Если бы вы тупо перевели сообщение об ошибке, не пришлось бы вообще заводить топик.

    PS
    Да тут сам код с багой, чем длиннее массив, тем больше Нумов в него добавится. А так бы его можно было переписать на две строки с Linq.
    Ответ написан
    1 комментарий
  • Как изучать Unity без youtube?

    Это начало конца, меняй деятельность, пока не поздно
    Ответ написан
    Комментировать
  • Как выложить игру в Epic Games?

    JohnnyGat
    @JohnnyGat
    Стараюсь писать код, понятный человеку.
    Форма заявки внизу страницы https://www.epicgames.com/store/ru/about
    Ответ написан
    1 комментарий
  • Как запретить игре отображаться поверх блокировки экрана UNITY | C#?

    @Dirofu Автор вопроса
    Проблему решил. Суть была в Development Build. После отключения Всё стало работать корректно. Если ваша проблема не в этом, то вот ещё пара возможных причин:
    1. У вас установлены плагины изменяющие манифест
    2. Включена блокировка пробуждения в разрешениях. Application.runInBackground имеет значение "true"
    Ответ написан
    Комментировать
  • Почему нет пакета Entities в 2020 версии Unity?

    flexer1992
    @flexer1992
    Unity Developer
    https://blogs.unity3d.com/2020/06/24/package-manag...
    Видимо пакет экспериментальный и не отображается в пакетном менеджере. Пишут что есть возможность добавить ручками редактируя манифест проекта.
    Ответ написан
    Комментировать