• Unity - BoxCollider2D - Почему происходит коллизия объекта с самим собой?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Если по правильному то Raycast исходит из центра объекта, и он сразу врезается в свой же коллайдер. Соответственно точку из которой посылается луч, нужно вынести за пределы коллайдера. У вас же обратная ситуация, луч посылается откуда-то из вне со смещением, в центр нашего объекта. Из чего следует вывод, что если между точкой откуда идёт луч и до центра персонажа, нет никаких других коллайдеров, то он попадает в персонажа.
    Вариант решения:
    - Отрисовать луч через Debug.DrawRay или Debug.DrawLine (что-то такое и настроить правильное смещение конечной точки).
    - Экспериментальным путём найти подходящие значения.
    - Создать в персонаже 2 дополнительных ГО и использовать их как конечную и начальную точки луча.
    Ответ написан
    Комментировать
  • Как назначить элементы массива через код?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Объявляешь через код массив вектор3 и тут же инициализируешь его элементы с заданными координатами.
    Ответ написан
    Комментировать
  • Как реализовать преследование в UNITY, но только по осям X и Z?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Делай псевдо2д - самый простой вариант, изначально Unity 3d движок и даже когда ты создаёшь 2д проект, там идёт почти такая же обработка как и 3д. Так вот:
    Создаёшь 3д проект, переключаешь камеру в 2д, поворачиваешь "ground" лицом к камере, потом ставишь на неё препятствия из кубов "условно". Создаешь персонажа, делаешь ему управление с передвижением только по 2 нужным осям, кидаешь на него 2д спрайт. А ботов настраиваешь через стандартный NavMesh и вуаля, у тебя 2д игра с 3д возможностями.
    Ответ написан
    9 комментариев
  • Что за баг с юнити?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Дядь Богдан, ты бы версию Unity написал. Может ты юзаешь последнюю доступную а не стабильную LTS и тогда разного рода баги - это норма. Может пакеджы какие подключил или еще чего, скриншот мягко говоря - не информативный. Как долго висит это окно? Если это происходит при создании нового пустого проекта еще и не просто 3D, а например с HDRP, то это нормально. Где описание после чего появилась проблема и какие варианты решения предпринимались? Сколько раз редактор переустанавливал и переустанавливал ли вобще? Сколько раз винду переустанавливал?
    Ответ написан
  • Как перенести карту мира в игру?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Берёшь карту Испании, условно). И режешь её в графическом редакторе, делаешь каждую провинцию отдельным слоем например или изображением. Потом экспортируешь данную многослойную карту или картинки в Unity, там собираешь карту как она должна быть например из Image-й или Button-ов. Ну а дальше думаю и так понятно.
    Ответ написан
    Комментировать
  • Хочу в геймдев?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Я приблизительно с такими же идеями и желаниями нашел свою первую работу, могу сказать лишь только то, что делать игры и играть в них - совершенно разные вещи.
    Сперва нужно определится, что приоритетнее:
    Делать 3д модели или арты - это уже скорее дизайнер.
    Продумывать уровни/игровые подходы/игровой опыт/сценарий и т.д. - это геймдизайн.
    Делать спецэффекты - это VFX editor.
    Писать код/связи/логику/поведение - это уже программист.
    В геймдеве нет одной такой профессии которая бы всё могла и умела. Ты конечно можешь стать таким человеком, но скорее всего это тебя сильно замедлит и помешает стать профи хоть в чем-то одном.
    Про участие в разработке на фрилансе или стартапах - забудь до уровня миддл-синьор. Адекватный проджект менеджер не начнет стартап с набора 10 джунов, это не выгодно.
    Большинство людей в геймдев попадают от обратного(по крайней мере программисты), сперва они изучают C#, педалят коммерцию, а потом переходят в геймдев. Без знания C#, освоить Unity будет не просто, хотя там уже и есть некоторые инструменты для визуального скриптинга(но это полный буллщит).
    Дальше на вопросы отвечаю с точки зрения Unity программиста.
    1. Насколько геймдев сложен?
    Кому-то сложно, кому-то нет... Можно банально открыть пару вакансий Unity разработчика и сравнить требования с C# разработчиком например. Крайне рекомендуется понимать векторную алгебру, иметь хотя бы общее представления о матрицах, алгоритмах. Также важно всегда учится и следить за новыми технологиями, трендами иначе есть большой риск оказаться на свалке устаревших технологий.
    2. Реально ли заработать одному на разработке игр?
    Реально, например можно продумать или спи###### идею, реализовать логику и весь код, заказать где-то на фрилансе арты и звуки, и в продакшн, но намного профитнее будет работа в команде. Есть множество игр сделанных одним человеком, ну нужно понимать "время-деньги", теоретически можно и код уметь писать, и арты самому делать, и продвижением продукта заниматься, насколько это будет профитно и сколько времени на всё это уйдёт - уже другой вопрос.
    3. Стоит ли вообще учить C#?
    Это уже каждый решает сам для себя, данный ЯП активно используется крупными компаниями в сфере бизнеса, а бизнес это бизнес $.
    Если до этого момента желание еще не пропало то могу дать три совета и совершенно бесплатно)).
    1. При соло разработке, не стоит даже пытаться сделать проект уровня ААА. Простенького 2д платформера с интересной идеей/механикой достаточно.
    2. Учите C# и идите в коммерцию на аутсорс, очень быстрый и мощный скиллап обеспечен. А дальше уже переход на Unity будет не очень болезненный.
    3. Искать адекватный курс обучения по Unity+С# с нуля или что-то около. С поддержкой ментора + созданием проектов для портфолио. Продолжительность такого курса должна быть полгода минимум, скорее год. Это скорее всего не будет дёшево, но даст достаточный багаж знаний для старта. И настоятельно рекомендую заняться созданием портфолио со своих проектов.
    Ответ написан
    Комментировать
  • Здравствуйте. Возникла довольно популярная проблема. Поможете?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    У вас ошибка в названии метода, а именно FixUpdate(), должно быть FixedUpdate(). В связи с чем инпут у нас не меняет своих значений, isGround = false, ну и со всеми вытекающими. В будущем рекомендую юзать Debug.Log(); или print(); что бы хотя бы понимать, на каком этапе все сломалось.
    Ответ написан
    Комментировать
  • Как заставить игнорировать другие объекты NavMesh?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Смотри, для этого объектам нужно во первых назначить разные слоя(Layer), затем заходишь в Edit->Project settings и там в самом низу(Unity 2021) есть сетка где на пересечении разных слоев стоят галочки, это собственно и есть то, что тебе нужно. Здесь настраивается взаимодействие между слоями, кто с кем может столкнутся и тд.
    Ответ написан
    Комментировать
  • Как запустить поток?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Возможно не совсем правильно понял вопрос, но в Unity есть встроенный метод который позволяет узнать сколько времени прошло с момента запуска Time.realtimeSinceStartup. Штука в том, что Unity сама решает сколько потоков ей нужно и как их разделять. Вашу идею можно реализовать несколько иначе, например можно сделать основной скрипт "менеджер" который будет в себе вызывать скрипт таймера и main раздельно или когда это нужно.
    Ответ написан
  • Как сместить камеру при удержании какой либо клавиши?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Можно юзать Input.GetKeyDown("s"), данная ф-ция вызывается только раз при нажатии на кнопку. Или можно скостылить какой-нить bool флаг.
    Ответ написан
    Комментировать
  • Почему не работает прыжок в Unity 2D?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Очень странный способ чекать землю. А почему бы не использовать встроенные возможности OnCollisionEnter/stay/exit и чекать в них по тегу или имени?
    Ответ написан
  • Как в Unity сделать чтобы по длительному зажатию клавиши, выполнялось какое то действие?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Делаем например банально в апдейте через if getkey в нем же делаем некий таймер который покуда держится кнопка таймер++ и при достижении определенного значения отправляем коллбек или что-то там делаем.
    Ответ написан
    Комментировать
  • Unity Как сделать так, что бы объект реагировал на столкновение с игроком только снизу (как блок с вопросиком в марио)?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    1. Сделать снизу обьекта небольшой коллайдер/триггер.
    2. Сделать на голове персонажа этот коллайдер/триггер.
    3. Рассчитывать вектор движения обьекта с которым столкнулись.
    Я бы выбрал первый вариант)
    Ответ написан
    Комментировать
  • Как реализовать переход на другую сцену?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    подключаешь библиотеку using
    using UnityEngine.SceneManagement;
    
    //в метод Update или CliksCar добавляешь
    if(clik >= 1000)
    {
    SceneManager.LoadScene("sceneName"); //собсна в скобках имя сцены
    }
    Ответ написан
    2 комментария
  • Поможете решить генерацию объектов в Unity?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Можно попробовать использовать transform.LookAt(target); Или же через raycast. Сперва проверяем находятся ли указанные координаты в поле зрения, если нет размещаем так обьект, если же да, то генерим новые координаты.
    Ответ написан
  • Какой монитор выбрать для работы в [Unity3d] [Visual Studio Code и т.п]?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    1. Процент игроков с мониторами 2k/4k ничтожно мал, все сидят на fullhd и будут сидеть еще какое-то время, да и карта слабовата. Недавно себе приобрёл LG 27GL650F-B после чего мой 24" заменил старый второй моник. По своим наблюдениям могу сказать, что фуллхд на 27" вполне себе хорошо смотрится, я при своём 100% зрении на расстоянии около 40см не вижу никаких пиксельных сеток и прочей дичи о которой пишут, но это ИМХО. Спустя некоторое время начал активно работать в Unity и понял, что нужно было переплачивать не за 144гц, а за дюймы, так как моего монитора критически не хватает для комфортного размещения интерфейса Unity, сейчас смотрю в сторону LG 34GL750-B и всем рекомендую для подобного рода работы, юзать ультраширокие мониторы. Только IPS матрица никаких TN, так как важно видеть реальные цвета, а не то, что производитель там себе навоображал.
    Без второго монитора заниматься разработкой - себя не любить(выход - ширик). Еще проблема двух мониторов в том, что крайне маловероятно их удастся абсолютно одинаково настроить по цветам и это раздражает.
    2. Переплачивать за данную функцию или выбирать отталкиваясь от неё - глупо. Главное покупать моник с VESA креплением. Выкидываешь родную ногу и покупаешь настольное/настенное крепление - профит. Сам юзаю NB F100A, хотя родная нога позволяла выше/ниже/наклон/поворот, иногда всё же нужно моник ближе/дальше двигать не упираясь в клаву.
    3. Есть в играх и крайне динамических сценах. 90гц очень рекомендуется, выше маркетинг.
    4. А если не в играх, то для чего? Браузить и кинцо смотреть? Думаю вполне себе потянет, но карта будет работать на 100%
    5. Что-то конкретное посоветовать в пределах бюджета сложно, однозначная рекомендация соотношение сторон 21:9, 32:9, 32:10 и IPS матрица. Герцовка и время отклика если в игры не играть, то абсолютно не важны.
    Ответ написан
    Комментировать
  • Как нарисовать линию от точки до точки?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    подключаем компонент LineRenderer
    public LineRenderer lineRenderer;
        // Start is called before the first frame update
        void Start()
        {
            lineRenderer.positionCount = 3; //указываем кол-во точек
            Vector3 firstPoint = new Vector3(0, 0, 0);
            lineRenderer.SetPosition(0, firstPoint); //номер точки и её положение
    
            Vector3 secondPoint = new Vector3(5, 5, 0);
            lineRenderer.SetPosition(1, secondPoint);
    
            Vector3 thirdPoint = new Vector3(15, 5, 0);
            lineRenderer.SetPosition(2, thirdPoint);
        }
    Ответ написан
    Комментировать
  • Компиляция под ios на unity, подводные камни, какой мак ос выбрать?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Для этого нужен в первую очередь аккаунт разработчика. Можно юзать Cloud Build, но для него всё равно понадобится акк разработчика + ключ от мака, так можно собирать из под винды. На самом деле нет большой разницы на чем собирать. Там из отличий в плане билда, были отличия только для старых планшетов/телефонов которые юзают Metal графу, с маками же никакой разницы, кроме производительности самого мака.
    Ответ написан
    Комментировать
  • Поворот персонажа в сторону движения Unity?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    А почему бы поворот влево/вправо не засунуть туда где непосредственно происходит чтение инпутов? Просто когда нажал кнопку влево transform.localscale.x =-1; а вправо наоборот соответственно
    Ответ написан
    Комментировать
  • Хотелось бы узнать есть ли какая нибудь база скриптов для игр типа 2d платформеров?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Сейчас unity активно продвигает визуальный скриптинг. Попробуйте.
    Ответ написан
    Комментировать