• Как исправить ошибку CS0246?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    После того как скачали, обновили текстуры с помощью самого Post Processing? После подключения пакета, нужно обновить материалы и тд, это делается в автоматическом режиме во вкладке Edit если я не ошибаюсь. А лучше детальнее изучите введение в Post Processing.
    Ответ написан
  • Как сделать проверку что персонаж стоит на земле?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    bool isJump;
    
    private void Update()
    {
            if (Input.GetKeyDown("space") && !isJump) //проверка на нажатие кнопки и не находимся ли мы в прыжке сейчас
            {
    //вызываем прыжок AddForce или что там у вас.
                isJump = true; //помечаем флаг, что мы прыгнули
            }
    }
    
        private void OnCollisionEnter(Collision collision)
        {
            if (collision.gameObject.tag == "ground") //проверка что обьект столкновения имеет тег ground
            {
                isJump = false; //помечаем что мы столкнулись с землёй и можем снова прыгать
            }
        }
    Ответ написан
  • Как получить координаты коллайдера?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Коллайдеры/триггеры и прочее это компоненты. Они навешены на GameObject и у него уже кординаты к которым ты непосредственно перемещаешься. Тебе нужно создать пустой GameObject в том месте куда ты хочешь перемещать. Ну и на него там навесить триггер или коллайдер, что там нужно.
    п.с. Коллайдер в коллайдере плохая затея.
    Ответ написан
    Комментировать
  • Не могу вставить ОЗУ, слишком толстые перемычки в слоте. Плата ASRock B550 pro4. Что можно сделать?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Дави не стесняйся)
    Ответ написан
    Комментировать
  • Пишет NullReferenceException: Object reference not set to an instance of an object Platform. Что делать>?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    NullReferenceException вот эта вот ошибка в 99% случаях значит, что ты обращаешься к объекту который пуст(null). В основном это означает, что то не затянуто куда надо. НО! В данном случае компилятор пишет что на 13 строке ты обращаешься к обьекту который null. Скорее всего на этом объекте нет rigidbody2d или же нет к нему доступа. Для поиска ошибок рекомендую читать логи и использовать Debug.Log();
    Ответ написан
    Комментировать
  • Почему спрайт .png в unity не хочет загружаться?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    а сам png файл пометил как спрайт2д?
    Ответ написан
    Комментировать
  • Как исправить баг с ходьбой?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    В целом предыдущий ответ полностью правильный. Если хочется делать передвижение именно так, то можно добавить Vector3.up. что бы героя всегда тянуло немного вверх, визуально это не заметно, но ходить по "наклонной" позволяет)).
    Ответ написан
    Комментировать
  • Как прорезать объекты в юнити?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Вариантов несколько.
    1) Зачастую делается 2 обьекта, один обьект цельный(с цельным мешем) который, при столкновении с героем например, выключается и вместо него включается уже разбитый обьект с разрезанным мешем на куски, который так зрелищно разлетается.
    2) Вариант попроще и используется чаще)). Изначально, ты знаешь где расположены стены и проходы, выключаешь их в момент столкновения и в этом месте включаешь эффектный какой-нить заранее настроенный ParticleSystem. Эффект даже зачастую включают раньше, что бы скрыть момент исчезновения преграды.
    Ответ написан
    Комментировать
  • Как из inputField получить int?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    В инспекторе самому элементу Input Field ставишь Integer(тогда в поле можно будет вписать только целые числа), на выходе, всё равно, будет string и дальше его преобразуешь в int.
    InputField numberInputField = ...; //тут подключаешь своё поле с которого читаешь
    int number = int.Parse(numberInputField.text); //записываешь значение в переменную
    Ответ написан
  • NullReferenceException: Object reference not set to an instance of an object почему?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Во - первых использовать While -плохо.
    Во - вторых ошибка NullReferenceException, означает что вы пытаетесь получить доступ к обьекту которого нет(null) или пуст, возможно вы его удалили или он еще не создан. Из описанного выплывает что в itemsPanel.transform.childCount - null(пусто). Как вариант можете написать так print("z - " + itemsPanel.transform?.childCount);
    Ответ написан
    5 комментариев
  • Как зареспавнить спрайта в unity2d?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Вопрос не совсем понятен. Что подразумевается под зареспавнить? Если перемещение обьекта, то всё верно.
    1) Там где респавн вы создали Gameobject.
    2) Затем Player(на котором должен быть коллайдер), входит в Триггер.
    3) Идёт проверка что other.gameobject.tag == "Player" и если да то other.gameobject.transform.position = respawn.gameobject.transform.position.
    Когда у вас что то не работает, проверяйте код, строчка за строчкой. Проверьте работает ли триггер вообще(уберите if). Скорее всего вы забыли добавить коллайдер на плеера.
    Ответ написан
    Комментировать
  • Как сделать скролл для спрайтов?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    В unity UI, можно и спрайты крутить. Если по-быстрому и по-простому, то быстрее переделать всё через UI.
    Спрайты вне UI обычно используются для создание 2D миров, это может быть персонаж/элементы окружения.
    Если же принципиально нужно так, то нужно изобретать велосипед и по сути писать свой UI. Следовательно для твоей задумки Спрайты нужно будет нехило так заскейлить. Это должен быть обьект в котором ты будешь передвигать при движении твоего "скроллбара", все внутренние элементы, скорее всего писать шейдер(который мог бы эти обьекты визуально обрезать если их нужно скроллить не целиком), отключать те которые выходят за его границы или юзать маску и тд.
    Не совсем понятна идея просто. Если это условно говоря поле 3*3 с видом сверху по которому топчется герой и своим прыжком выбирает уровень, то это имеет смысл. В противном случае - как по мне, бессмысленная затея.
    Ответ написан
    Комментировать
  • Предупреждение: "some conflicting dependencies were found". Как устранить?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Это проблема с google сервисами, у меня появилась после перевода проекта на новую версию unity. Для начала попробуй их обновить через интерфейс Unity во вкладке Edit кажется. Не поможет, переустанови. На Гите есть jar resolver и там подробная инструкция по установке.
    Ответ написан
    Комментировать
  • Как сделать чтоб Mesh преследовал игрока?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Для начала можно на него попробовать написать скрипт который бы двигал его следом за игроком.
    Ответ написан
    Комментировать
  • Как сделать чтобы при нажатии кнопки появлялась новая панель?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Создаёшь панель ещё одну и держишь её выключенной, когда что то там сделал то вуаля, включаешь ГО.
    Ответ написан
    Комментировать
  • Делаю бесконечную дорогу но вылетает ошибка: MissingReferenceException?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Пусть каждый блок сам решает удаляться ему или нет и сам себя удаляет. Перед удалением пусть себя же удалит из коллекции. Это совет если не разбираться в коде.
    Просто где-то у тебя код пытается получить элемент который уже удален и сыпет тебе ошибку. Проверь в какой конкретно момент ошибка появляется как вариант.
    Ответ написан
    Комментировать
  • Как в моём случаи лучше реализовать механику в Unity3D?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    А в чем собственно проблема? У вас в hit содержится куча данных. Например вы можете достать ее позицию в мире hit.collider.gameobject.transform.position и измерять расстояние между ней и this.gameobject.transform.position через vector3 distance или просто считая разницу.
    Ответ написан
  • Какой способ поиска пути в Unity оптимален?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Что мешает сделать в 3d? Фиксируешь камеру с нужного ракурса и вот тебе псевдо 2d. Так обычно проще и быстрее. Unity в первую очередь 3d движок и соответственнофункционал при работе в 3д больше. А там уже дело за малым, повернул объекты в нужную плоскость, вырубил тени и т.д.
    Если принципиально делать в 2d, то мне кажется это возможным через вектор направления и райкасты, но если это нечто типа лабиринта... может быть еще вейпоинты добавить.
    Ответ написан
    2 комментария
  • Написал код движения персонажа, но он не работает, что делать?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Функции CanJump у вас нет, а вы пытаетесь её вызвать, значит, код или не ваш или вы не понимаете, что пишете.
    void Update () {
        float v = Input.GetAxis ("Vertical");
    		float h = Input.GetAxis ("Horizontal");
    
    		rb.velocity = transform.right * v * 3f;//подходит для игры с видом сверху
    		rb.angularVelocity = -h * 100f;
                    
                    if (Input.GetKeyDown ("space")){
                       rb.Addforce (0, 500);
                    }
    }
    Ответ написан
    Комментировать
  • Как сделать, чтобы персонаж поворачивался в сторону движения в Unity?

    CHIDWI
    @CHIDWI
    Unity3D Developer
    Чтобы не было даблджампа добавить булевую переменную. Перед прыжком проверяешь в прыжке персонаж или нет. В функции прыжок делаешь её true. И при приземлении через OnCollision например, делаешь её снова false.
    Ответ написан
    Комментировать