• Почему окно редактора начинает сильно тормозить из-за DrawGizmo?

    @Hightlander
    Всё очень просто:
    Метод с атрибутом "[DrawGizmo(GizmoType.NotInSelectionHierarchy)]" вызывается для каждого невыделенного объекта на сцене. Чем больше объектов - тем чаще он вызывается, что и является причиной тормозов.

    P.S. Пока не нашёл элегантного способа получить единичный вызов метода. Но как вариант - можно создавать объект с флагом HideFlags.HideAndDontSave и отрисовывать через него.
    Ответ написан
    1 комментарий
  • Как создать объект в сцене из Инспектора?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Есть несколько вариантов. Если вы хотите один и тот же метод использовать в редакторе и рантайме, то можно сделать свой инспектор с кнопкой. Например, вы хотите вызвать метод Method в редакторе:
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        private void Awake()
        {
            Method();
        }
    
        public void Method()
        {
            Debug.Log("Method");
        }
    }

    Создаёте класс, наследуетесь от UnityEditor.Editor и вешаете атрибут CustomEditor. В папку Editor кладёте скрипт с инспектором:
    using UnityEditor;
    using UnityEngine;
    
    [CustomEditor(typeof (Test))]
    public class TestEditor : Editor
    {
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
    
            if (GUILayout.Button("Method"))
            {
                ((Test) target).Method();
            }
        }
    }

    В результате получите такую кнопку:
    Ziazn
    Если метод нужен только в редакторе, то можете сделать менюшку с помощью MenuItem. Скрипт тоже кладёте в папку Editor.
    using UnityEditor;
    using UnityEngine;
    
    public static class TestUtility
    {
        [MenuItem("Tools/Method")]
        public static void Method()
        {
            Debug.Log("Method");
        }
    }

    Получите такую менюшку:
    HddYD
    Если жаждете приключений, то можете ещё попробовать EditorWindow, но я бы начал с инспектора.

    Для конкретно генерации вам могут пригодиться атрибуты HideInInspector и SerializeField. С их помощью вы сможете в скрипте генератора хранить ссылки на созданные объекты и не терять их при перезагрузке сцены.
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        [HideInInspector, SerializeField]
        private List<GameObject> gameObjects = new List<GameObject>();
    
        private void Awake()
        {
            Generate();
        }
    
        public void Generate()
        {
            for (int i = 0; i < 100; i++)
            {
                var go = GameObject.CreatePrimitive(PrimitiveType.Cube);
                gameObjects.Add(go);
            }
        }
    
        public void Clear()
        {
            foreach (var go in gameObjects)
            {
                if (Application.isPlaying)
                {
                    Destroy(go);
                }
                else
                {
                    DestroyImmediate(go);
                }
            }
            gameObjects.Clear();
        }
    }
    Ответ написан
    1 комментарий
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Верно все написал Путин ))))
    а то что у вас " ругается на function Update () и return;"
    так у него на .js написано.

    у вас видать C#
    void Update()
    {
     if (Application.platform == RuntimePlatform.Android)
      {
        if (Input.GetKeyDown(KeyCode.Escape)) 
        {
          Application.Quit(); 
        }
      }
     }
    Ответ написан
    5 комментариев
  • Каковы условия труда в современной игровой индустрии?

    terrier
    @terrier
    Пункт номер 0 - не сомневайтесь, С++ - один из основных языков в гейм-индустрии.
    1. Гейм-индустрия сильно разная. Лабать инди-игру на кухне - это одно, фигачить очередную часть AAA-тайтла - это другое, делать веселую ферму с енотиками для вконташи - это третье
    2. Соответственно, если фирма еще не вышла из стадии "Вася и Петя решили сделать новый фэллаут и уже даже наняли одного программиста Толяна", то условия очевидны - Толян фигачит пока не упадет за копейки.
    3. А вот если фирма уже перешла на более индустриальный уровень, то тут обыкновенная IT-разработка, с некоторыми особенностями:
    - В индустрии вполне встречаются энтузиасты и кто-то в компании будет работать с восьми до восьми ( хорошо, если это продюсер ), но это совсем не обязательно должны быть вы.
    - В целом в управлении как правило бардак, для того чтобы рулить одновременно и художниками и программистами и геймдизаннерами нужны очень классные менеджеры, а таких в индустрии нет
    - Уровень технической организации ( CI, vcs, code-review, внятные стандарты кодирования ) колеблется от "стихийного" до весьма высокого, есть суперкрутые специалисты, работать с ними - большая удача, особенно для новичка.
    - Однако если вас интересует конкретно стек технологий с C++ - там крутых спецов вымывают яндекс/мэйл, они способны предложить условия получше
    - Переработки случаются, поскольку планирование как правило весьма "креативное". По идее разработчки должны с этим бороться, насколько успешно - другой вопрос
    - По деньгам - средне, вот тут сильно зависит от заказчика/проекта
    - Есть ли улучшение со временем? Ну, вот недавно тем, кто работает на западного заказчика одномоментно стало резко лучше, гггг))) Но в целом, вы правильно поняли, в плане условий труда индустрия эволюционировала от "Полный треш, подойдет только для долбанутых подростков" к "Можно рассматривать, если есть толерантность к некоторому творческому беспорядку"
    Ответ написан
    1 комментарий
  • Сервер для многопользовательской игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    "Пришло время когда нужно разработать сервер для онлайн игры"

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

    Потому что у вас вопросы звучат так "я хочу написать абстрактный сервер онлайн игры, понятия не имею квейк/дота/шарики онлайн, но как сделать чтобы все работало мгновенно на любом клиенте". То есть ни концепции, ни требований, ни понимания что критично а что нет.
    Ответ написан
    Комментировать
  • Какой движок игр выбрать Unity3D, LibGDX, Unreal Engine?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Советую начать с Unity3D - большое сообщество, много целевых экспортируемых платформ, много ассетов в assetstore, HTML5 вполне сносно работает в браузере.
    PS: Вот тут ссылки на уроки Unity3D (+ подборка других).
    Ответ написан
    2 комментария
  • Для чего можно использовать Unity 3d кроме игр?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    g.zeos.in/?q=unity3d%20non%20game
    Результатов: примерно 201 000
    зачем вам наше мнение?
    Ответ написан
    3 комментария
  • Серверная часть матчей для unity?

    @VictKor
    Игровая индустрия, 3d моделирование
    5000 подключений одновременно?! Вы бы посмотрели расценки для таких серверов или облачных решений. Тот же фотон, развернутый на своем железе бесплатно предлагает только 100 CCU (вроде). Можете глянуть ещё appwarp (или отдельный сервер appwarp2). А вообще, ковыряйте node.js+socket.io
    Ответ написан
    Комментировать
  • В чем заключается разработка игр на Unreal Engine?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Пишете сами себе ТЗ. Если за месяц и меньше сумели собрать прототип игры с большей частью фич из ТЗ(как правило основная идея игры, ее изюминка) то продолжайте разработку. Сами поймете какие темы надо подтягивать и штудировать.
    Пытаться что то делать сразу для мобилок очень плохой вариант т.к. это на порядок сложнее.
    UE4 или любой другой двиг в связке с С++ вообще ошибочный вариант, 95% что забьете на это очень быстро. Лучше начинайте с какого нибудь FPS\RPG\GAME Maker или тучи других движков которые больше ориентируются на визуальную часть и простейшие языки типа бейсика, есть еще неплохой "Лаборатория игр Kodu" от MS.

    С++ язык который изучают несколько лет, потом лет 5 набивают шишки в проектах на коленке которые продал знакомым и еще пару лет работы в окружении профессионалов. Порог вхождения для правильного написания кода в этом языке очень большой, лучше не заморачиваться с ним и сразу учить Java\С#\Swift т.к. они в разы легче для понимания и сильно схожи друг с другом.
    Ответ написан
    1 комментарий
  • В чем заключается разработка игр на Unreal Engine?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    0. Написание дизайн-документа. Если не можете точно и детально написать, что из себя представляет игра, какие механики используются, сеттинг и т.п., то к разработке приступать не рекомендуется.
    1. Пре-альфа/Прототип. Этап, на котором набивается "скелет" игры, с минимумом контента. На нём можно успешно закончить, если понимаете, что не можете реализовать те или иные идеи диздока или игра не соответствует вашим ожиданиям.
    В UE4 - этап, состоящий из написания кода на 90% (даже если вы разрабатываете на блюпринтах - рано или поздно захочется уехать на чистый код, тем более что оттуда можно делать интерфейсы для них для удобства тестирования и гуманитариев).
    2. Альфа. Играбельно-багованое нечто, в котором реализованы все основные механики. На этом этапе обычно основной упор в разработке на базовый баланс, заполнение контентом и БАГИ. Тут по-полной используются все возможности: от моделей и анимации до активной работы с дебаггером и логами.
    3. Бета. Весь геймплей в наличии, контент готов на 95%. Баги - наше всё.
    4. Релиз. Момент рождения продукта.
    5. Пост-релиз. БАГИ, недовольные пользователи, призывы к бунтам. Возможно захочется делать допконтент.
    Про мобильную разработку: преимущества ue4: полный контроль над кодом, лучший редактор во Вселенной, вариативная производительность и бОльшие технические возможности, недостатки: больший порог вхождения, дольше и сложнее разработка, нет поддержки "из коробки" многих удобных фич типа AdMob и ачивок на платформе.
    Ответ написан
    Комментировать
  • Какой движок выбрать?

    Mishok2000
    @Mishok2000
    Творческий программист
    Unity.. Не хотите - не пользуйтесь редактором.
    Ответ написан
    Комментировать
  • В каком направлении развиваться?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > а мобильная разработка очень мне кажется перспективной(хотя я возможно ошибаюсь и перспективным является веб
    Откуда эта глупость "мобил против веба"? Это как пчелы против... ульев. А ничего, что пчелы живут в улье, т.е. непосредственно с ним связаны?
    Также и приложения в большинстве своем хоть как-то работают с бек-ендом, серверами - своими либо чужими (как VK API).
    А уж если это приложение для заказа суши или такси, то это вообще по сути тот же сайт - только клиентская часть у него не в браузере, а в виде приложения.

    > в последнее время движки помогают все меньше писать, и все больше налагать на другие составляющие
    Так благодаря этому КОДИТЬ приходится как раз меньше, по сути этим занимается движок. А ПРОГРАММИРОВАТЬ - создавать саму логику - больше.
    Ответ написан
    2 комментария
  • В каком направлении развиваться?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Вздор, в геймдеве у программистов работы хоть отбавляй. Появление доступных движков просто позволяет меньше заниматься низкоуровневой фигнёй, которая не относится к непосредственному геймплею. Это всё равно что сказать, что вот в средние века художники были настоящие: им надо было изготавливать краски, готовить холст. А сейчас им всё готовенькое с завода и делать больше нечего. Наоборот, всё самое интересное только начинается.

    Про отсутствие перспектив развития тоже не правда, без программиста цифровую игру в принципе не сделать. Геймплейные механики ведь не из воздуха берётся? Кроме того, в последние годы набирает популярность процедурная генерация - чисто программистское занятие с кучей занятных проблем. А если вам интересно программирование ИИ, то вы обеспечите себя работой на десятки лет вперёд.

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

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Да, есть, открываете профайлер и медитируете. Смотрите на проц, какие скрипты много жрут, оптимизируете. Смотрите на количество дроуколов, оптимизируете. В каждой игре есть свои узкие места, и есть набор приёмов для их устранения, но начинается всё всегда с их поиска. Например, вы знаете, что у вас много одинаковых врагов на экране, а профайлер показывает, что они все поодиночке рисуются. Тогда читаете про батчинг и чините. И дальше в том же духе.

    Полезное чтиво:
    docs.unity3d.com/Manual/Profiler.html
    docs.unity3d.com/Manual/OptimizingGraphicsPerforma...
    https://habrahabr.ru/post/169451/
    https://habrahabr.ru/company/intel/blog/254353/
    www.gameprogrammingpatterns.com/optimization-patte...
    Ответ написан
    Комментировать
  • Как правильно создать блог для заработка на рекламе?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вы какой-то фигней занимаетесь, простите.

    Для заработка на рекламе нужно читать не как создать блог, а иметь достаточно знаний, чтобы наполнить его интересной и полезной информацией и делать это регулярно на протяжении длительного времени.
    Потому что какой бы вы там блог или сайт не создали, если на нем не будет ничего полезного - никто туда не придет.
    Ответ написан
    3 комментария
  • Реально ли сейчас сделать "крутую" игру, имея такое изобилие инструментов?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Контент-то как раз и есть самое трудоемкое. Вы же не думаете, что Ведьмак-3 делался командой из трех человек?

    Попробуйте написать пару квестов, задизайнить пару локаций (на бесплатных ассетах, для пробы). Теперь умножьте это на пару-тройку сотен, прибавьте музыку, лору, ошибки коммуникации, споры о вижене и тупо баги в движке и в ассетах. А, и баланс. Вы знаете, как делать баланс в играх?
    Я уже не говорю о том, что ассеты из магазина быстро набьют оскомину в первую очередь вам самому, что единомышленники имеют тенденцию сливаться с проекта, просить жрать, вступать в брак, рожать детей, что у вас у самого идея может поменяться в ходе работы, и тогда как минимум треть выбрасывается, а треть переделывается.
    Ответ написан
    Комментировать
  • Почему конденсатор сам заряжается?

    Foolleren
    @Foolleren
    Компас есть, копать не люблю...
    Это свойство любого диэлектрика, в нём происходит миграция зарядов из глубины к электродам от этого на них наводится напряжение, наиболее подвержены ему электролиты, плёночные конденсаторы меньше, меньше всего фторопластовые, да ещё при этом и полярность меняют, вакуумные свободны от этого недостатка.
    Ответ написан
    3 комментария
  • Какое разрешений экрана выбрать на Unity3d для Android игрушки?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Ответ написан
    Комментировать
  • Что сломалось у веб-камеры?

    Jump
    @Jump
    Системный администратор со стажем.
    Что сломалось у веб-камеры?
    Собственно веб камера и сломалась.
    Ответ написан
    2 комментария