Как сделать 2D платформер на Unity | #1

Sdílet
Vložit
  • čas přidán 10. 01. 2021
  • В этом видео мы начнём создавать 2D платформер на движке Unity.
    Добавим фон, платформы для уровней, а также самого игрового персонажа.
    Скачать пак графики для платформера:
    Яндекс. Диск - yadi.sk/d/oDaUkuSYI3m0Ew
    Гугл Диск - drive.google.com/file/d/1zARN...
    Как сделать 2D платформер на Unity | #1
    unity, как создать игру, разработка игр, unity уроки, создание игр, unity tutorial, unity 2d, платформер, как сделать игру, unity 3d, unity3d, 2d платформер, юнити, c# уроки, c#, c# unity, 2d, с# unity уроки, как скачать юнити, c# tutorial, cube company, c# unity tutorial, как сделать свою игру, програмирование, visual studio, learn unity c#, c# for unity, как начать создавать игры, c# dersleri, unity 2d tutorial, learning c# for unity, learn c#, learn c# for unity, курс по изучение с# unity, игры, c# tutorial for beginners, создание, геймдев, игра, для начинающих, создание игр unity, game, unity2d, platformer, 2д, как создать, tutorial, анимация, как создать свою игру, создание игр для новичков, как, gamedev, разработка, разработчик игр, обучение, инди игры, программирование, юнити уроки, design, основы, sprites, indie gamedev, геймдизайн, как сделать, unity уроки для начинающих, graphical, создание платформера unity, дизайн, графика, уроки по unity, assets, урок, игровые движки, уроки, персонаж, 2d игра, games, создание 2d игры, гайд, 2d platformer, unity 2d уроки, game dev, how to make game, unity 2d платформер, move, unity 5, код, создание игры, 2d platformer unity, asset store, animation, unity 3d tutorial, game dev для начинающих, спрайты, си шарп, как создать платформер на юнити, castadude, beginner, первая игра, unreal, юнити 3д, создание игр в unity, геймдев с нуля, android, управление в платформере на юнити, brackeys, уроки по юнити, development, develop, создание платформера на юнити, платформер юнити, геймдев с чего начать, как сделать управление на юнити, создание игры на unity, как создать игру на андроид, как сделать платформер, unity2d платформер, tutorials, 2д платформер, artalasky, пиксельарт, заргеймдев, юнити2д, #уроки, для ничинающих, юнити 2д, уроки на русском, unity tutorial 2d, 2d unity, easy, курсы программирования, прыжок, unity создание игр, игра на unity, движение, jump, 2d спрайты, создать игру бесплатно, создание 2d игр, unity платформер уроки, 2d платформер на unity, игровая графика, игровой движёк, как создать игру на unity, уроки unity, упровление в unity, #unity, game design, zargamedev, графика для игр, void, войд, студия, public, паблик, unity 2д платформер, bool, privat, прайвет, вижуал, юнити анимация персонажа, работа с персонажом, animations, flip, как создать 2d платформер, code, visual, юнити анимация, платформер на андроид unity, studio, как создать 2d платформер на unity, бул, stickman game, создание игры stickman, создание игры на unity 2d, создание босса, ultima offline, unity stickman, создание игры на unity 2d платформер, игра на unity 2d, unity ragdoll, tgrey, за три минуты, №2, up, cube, вверх, unity 2d для начинающих, создание персонажа, легко, №4, стрельба, 2д-платформер, арталаски, джойстик юнити, course, unity2d смерть персонажа, unity2d воскрешение, переход между сценами, unity2d переход между сценами, счетчик монет, unity2d scenemanagement, scenemanagement, введение, фикс прыжка, главное меню, ui графика, монетки в unity, сбор монет, разработка игры, python pygame, pygame уроки, создание 2d платформера, python на практике, плавная камера, vector3.lerp, unity coint collect, сбор монеток в unity, №3, игрок, атака персонажа, unity c#, онлайн обучение, любимая школа, айти геник, айтигеник, itgen, программист, школа для детей, создание врага, пауза, платформер на unity, персонаж для игры, itgenio, айтигенио, unity game, разработка игр на unity, tutorial unity, 3d unity game, unity 2019, разработка игр на андроид, unity platformer, твоя первая игра на unity, платформер на юнити, твоя первая игра на юнити, unreal engine 4, уроки python, pygame, to, howto, how, textures, models, learn, перевернуть, basic, coding, programming, series, texture, model, создание 2д платформера на юнити, bloodlust, создание игры на юнити 5, как сделать 2д игру на юнити, как сделать игру без программирования, юнити 5 урок, юнити 5 уроки платформер, asset, как сделать свою игру на юнити, как создать свою игру на андроид, платформер на unity 5

Komentáře • 2K

  • @pipidastr
    @pipidastr Před 2 lety +498

    ###У кого не смещаются системы координат###
    Возле элементов управления: перетаскивание, перемещение, вращение и тд(под панелью управления где файл, едит, ассетс и тд)) после гаечного ключа с карандашом есть две кнопки: на одной надпись центр, на другой - глобал. Нажимаете на кнопку центр и она меняется на пайвот. После этого двигаете сам спрайт и при нажитии на обьект херо все получится. Методом тыка понял. Кому не сложно - лайкните, дабы поднять вверх и помочь другим.

    • @cookiefbi5970
      @cookiefbi5970 Před 2 lety

      лучший

    • @ginso0
      @ginso0 Před 2 lety

      СПС

    • @zaydex9128
      @zaydex9128 Před 2 lety +3

      Нифига непонятно, спасибо

    • @MER8T
      @MER8T Před 2 lety

      красава помогло

    • @ginso0
      @ginso0 Před 2 lety

      @-vishnevskiy ты про стрелки говоришь? Возможно у тебя персонаж и блоки находятся в одной плоскости с фоном, и поэтому стрелки просто не видно из за этого

  • @MisterMarioYT
    @MisterMarioYT Před rokem +5

    Спасибо огромное за такое информативное видео! В моем колледже уже начинается время зачетов и каждый студент должен сдать свой проект. Я решил что создам игру на Unity и нашел тебя! Спасибо огромное, это мой первый проект в жизни!

  • @user-bc8os3yb7z
    @user-bc8os3yb7z Před 2 lety +2

    Начал создавать платформер по твоим урокам, доступно и понятно объясняешь, всё круто

  • @wmp3920
    @wmp3920 Před rokem +2

    В первом же видео узнал тонну того, что искал несколько дней по чужим обрывкам !! Спасибо Вам !!!!

  • @Maximple
    @Maximple Před 3 lety +18

    Всё четко объясняешь и показываешь) Приятно смотреть😊

  • @G33ZX
    @G33ZX Před 2 lety +3

    Наконец то нашель дельный урок по Юнити. Ни в одном видео так просто и без лишней воды объяснялось, как создать поатформер. Большое спасибо!

  • @cor4ik871
    @cor4ik871 Před rokem +136

    Решение двух проблем с которыми столкнулся я и не только:
    1.Если вас персонаж при прыжке улетает в космос то вам надо просто изменить силу прыжка в инспекторе Hero,там снизу будет ваш скрипт в графе Jump Force ставьте так что бы он прыгал адекватно(у меня 6)
    2. Если у вас персонаж не прыгает после checkGround то в методе checkground измените радиус с 0.3f до 0.8f

    • @hellnetwork1677
      @hellnetwork1677 Před rokem +1

      Спасибо , очень помогли

    • @chaosdead9083
      @chaosdead9083 Před rokem +1

      а какой тип спрайта ты выбирал для героя, там просто после обновы нужно обязательно указывать форму спрайта, типа квадрат там или ещё что?

    • @cor4ik871
      @cor4ik871 Před rokem +1

      @@chaosdead9083 square

    • @MisterMarioYT
      @MisterMarioYT Před rokem

      спасибо огромное за второй совет. когда у меня было 0.3 персонаж не всегда прыгал, а после того как я поставил 0.8 персонаж прыгает при каждом нажатии пробела! спасибо!

    • @rajzer1844
      @rajzer1844 Před rokem +3

      ребят, у меня проблемки появилась:
      1. У меня герой прост так падает сквозь все и когда я удаляю rb2D он не падает, можете помочь разобраться с этим //второй день пытаюсь исправить эту ошибку, вот никак.
      2. Проблема после добавления Grounded герой прост не прыгает больше.
      Надеюсь на вашу помощь)

  • @WorldofHipHopRap
    @WorldofHipHopRap Před 3 lety +7

    Супер! Спасибо большое за подробный урок. Респект учителю 🤘😊

  • @cryzz0n
    @cryzz0n Před 2 lety +7

    Понравился урок. А именно то, что в коде не свалено всё в кучу, как у некоторых других блогеров, а расписано по методам. Я считаю что так намного правильней учится. Подписался)

  • @Kolevell
    @Kolevell Před 2 lety +25

    Что бы поставить несколько блоков в ряд можно не создавать несколько спрайтовых объектов и ставить в ряд(как это показано в видео). Для упрощения работы можно просто в инспекторе спрайта самой картинки Mesh Type сделать Full Rect.
    Затем перетягиваем спрайт на объект как в видео и уже на этом спрайтовом объекте ниже в инспекторе видим Draw Mode который переключаем на Tiled и по сути можно растянуть на нужную дину, но нужно учесть что в высоту он тоже дублирует объекты (в данном случае блоки земли) поэтому удерживаем высоту в один блок, но если вытянуть в верх надо то тоже норм, но чтобы сразу в две стороны вытягивать все же придется создать еще один объект.
    К слову надо учесть что внезапно спрайт по какой-то причине может сплющить (к сожаления не до конца разобрался) и вывести два сплющенных изображения на месте одного блока. Поэтому следом в draw mode под size выбираем у Tile mode -> Adaptive и перетаскиваем ползунок под ним до значения 1, тогда все коректно отображается.
    Ну и затем просто растягиваем бокс колайдер по контуру. Как по мне это в разы быстрее чем пытаться выставить несколько одинаковых блоков в ряд.

    • @user-nb9ks9hi7g
      @user-nb9ks9hi7g Před 2 lety

      Да, тоже получилось. Только в Adaptive ползунок на 0

  • @LeonidSpartan1
    @LeonidSpartan1 Před rokem +290

    Очень классная подача инфы, все получилось, спасибо 👍
    Для тех, кто столкнулся с отличиями в новой версии редактора (2021.3.8f1)
    - при добавлении спрайта можно выбирать Sprites - Square, это то же самое что и у автора
    - если есть проблемы со смещением точки координат - во вкладке Scene, верхняя левая кнопка (если на нее навести то всплывет подсказка "Toogle Tool Handle Position"), нажимаешь на нее и выбираешь в меню Pivot, после этого все получится как в ролике
    - если персонаж при прыжке улетает в космос, попробуйте увеличить Mass (в моем случае пришлось поднять до 90, чтобы были адекватные прыжки)
    В остальном сделал все в точности как в ролике, все работает

    • @GogaPlayBeats
      @GogaPlayBeats Před rokem +8

      Спасибо бро!

    • @ageeluy2930
      @ageeluy2930 Před rokem +11

      ТЫ ПРОСТО КОСМОС ! СПАСИБО

    • @SovaVShapke
      @SovaVShapke Před rokem +9

      герой который не носит плащ...

    • @Shinaolek
      @Shinaolek Před rokem +3

      почему-то, после того, как мы сделали нормальный прыжок, у меня персонаж вообще отказался прыгать, сделал всё как на видео

    • @minecraft8q9
      @minecraft8q9 Před rokem +1

      А что делать если я когда добавлял метод для того чтобы один раз можно было прыгнуть И потом я не могу из-за этого прыгать как это исправить

  • @user-ey2lb3fr5r
    @user-ey2lb3fr5r Před 3 lety +1

    Спасибо тебе большое, желаю удачи и продвижения канала!

  • @Mirowoolf
    @Mirowoolf Před 3 lety +9

    Спасибо за видео! Начал изучать Unity по твоим видео!

  • @valerysemenkin6024
    @valerysemenkin6024 Před 2 lety +4

    Спасибо большое за ролики. Надеюсь на твой успех также как и на свой))

  • @s3doyyy
    @s3doyyy Před 2 lety +3

    Вау, все круто с 6 минуты подписался!

  • @user-ey7dw4uj6q
    @user-ey7dw4uj6q Před rokem

    Спасибо за труды! Отличное видео.

  • @BernardGamer123
    @BernardGamer123 Před 3 lety +31

    вижу монтаж по-тихоньку лучше становится, молодец👍

  • @mrreadcode9341
    @mrreadcode9341 Před 3 lety +17

    Хорошая работа, продолжай. Надеюсь, мы сделаем то же самое на канале

  • @pv4nik
    @pv4nik Před 2 lety

    Вот мне нравится видео с такой спокойной музычкой,и если там ещё спокойный голос,то вообще топчик!

  • @user-ll4yv6dq5k
    @user-ll4yv6dq5k Před rokem +1

    Спасибо за туториал, надеюсь что канал посмотрят как больше людей.

  • @mikhailsivtsov
    @mikhailsivtsov Před 3 lety +9

    Отличное видео, для новичков познавательно!

  • @karasbrawl9311
    @karasbrawl9311 Před 3 lety +8

    не за что бы не догадался как убрать двойной прыжок, спасибо!

    • @saba1043
      @saba1043 Před rokem +3

      У меня код ни работаит я написал ну он перистал пригат

  • @user-ov5rd1nf8i
    @user-ov5rd1nf8i Před rokem

    Спасибо за гайд. Пока только начал смотреть, но написал заранее коммент, чтоб продвинуть канал. Спасибо чел =)

  • @user-rx9nx3ik3y
    @user-rx9nx3ik3y Před rokem

    Спасибо! Отличные уроки.

  • @seizhak353
    @seizhak353 Před 3 lety +3

    Большое спасибо за урок, ты очень доступно объясняешь

  • @Flegni
    @Flegni Před 2 lety +24

    Немного о том, кто поэтапно разбирает видеоролик, и у кого ошибки такого рода:
    Assets\Scripts\Hero.cs(8,34): warning CS0414: The field 'Hero.lives' is assigned but its value is never used
    Сделайте так:
    [SerializeField] private float speed = 3f; // Скорость двжиения
    //[SerializeField] private int lives = 5; // Кол-во жизней
    //[SerializeField] private float jumpForce = 15f; // Сила прыжка
    Если вы конкретно все делаете поэтапно, то они вам помешают т.к. не дадут возможность потестить ходьбу игрока (Потому что на момент того, как вы хотите проверить ходьбу, данные переменные нигде не используются и что-то ругается), после того как вы их закоментируете, сможете проверить передвижение. После так-же поэтапно, как будете доходить до момента применения live/jumpforce просто уберите два слеша.
    Так-же про тех кто не может найти две кнопки, которые описал Alexey Matushkin
    Нажмите на своего Hero во вкладке Hierachy и после нажмите на Sprite, который вложен в Hero, после этого загляните в Inspector и в Sprite Renderer буден функция "Sprite Sort Point" там выбран Center поменяйте его на Pivot, вауаля, и все работает.
    Если у кого-то не так, простите, я описал то, что конкретно помогло мне.

  • @user-de7br6qs7h
    @user-de7br6qs7h Před rokem

    Спасибо за урок, классный! Попробую поиграться =)

  • @viplikeit
    @viplikeit Před 6 měsíci +1

    очень полезные 13 минут, спасибо большое, будем смотреть дальше

  • @looolz6549
    @looolz6549 Před 3 lety +3

    о новая рубрика, класс👍

  • @owatch4333
    @owatch4333 Před 3 lety +4

    Спасибо за видео, обьясняешь хооошо для новичка , все понятно )

  • @MihandritBucks
    @MihandritBucks Před 3 lety

    Красавчик , продолжай в том же духе 😎

  • @DrillMan681
    @DrillMan681 Před rokem +1

    Огромное спасибо! Бро раньше я не мог делать 2D игры потому что не знал как сделать контроллер а ты показал огромное спасибо тебе и успехов в жизни!!!!!!!

  • @einstein6451
    @einstein6451 Před 2 lety +9

    Начал недавно изучать гейм-дев. Хочу сделать первую игру в качестве обучалки, что да как. Автору спасибо огромное. Всё так чётко и подробно, все ассеты выложил за что отдельный респект.

  • @alloeble
    @alloeble Před 2 lety +1

    посмотрел 5 минут, но чую прям то что надо!

  • @dxdrmusic
    @dxdrmusic Před 3 lety +2

    Лучший, спасибо огромное за урок!
    Лайк:)

  • @shidever
    @shidever Před 3 lety +6

    Отлично проделанная работа! Замечательно растолкованные и озвученные комментарии к различным строкам кода, так держать! Молодец!

  • @goshkaaa
    @goshkaaa Před 2 lety +39

    То чувство когда ты обучаешь лучше чем платные курсы )

    • @romires1905
      @romires1905 Před rokem +2

      ага, тольк о не работает и скачет по окнам

  • @MrDnbass
    @MrDnbass Před 2 lety +1

    Спасибо большое за урок!

  • @user-cf5ce9ht1s
    @user-cf5ce9ht1s Před 3 lety

    Для создания и публикации в плеймаркет игр на Юнити нужна ее Про версия или достаточно бесплатной Personal с оф.сайта? Или подойдет и пиратка Unity pro c трекеров? ))

  • @user-ts7tj5jy1e
    @user-ts7tj5jy1e Před 3 lety +17

    Очень хороший видеоурок. Всё понятно, код представлен удобно (представлен в виде стоп-кадра с увеличением, так что всё можно разобрать (спасибо за это большое)).

  • @garzvalandar7081
    @garzvalandar7081 Před 2 lety

    Хороший ролик, продолжай в том же духе!

  • @missandei6340
    @missandei6340 Před 7 měsíci

    Спасибо за урок, понравилось!

  • @user-cj8oy4cj1y
    @user-cj8oy4cj1y Před 3 lety +168

    Вот решение частых ошибок
    1) Не подсвечивается разными цветами например MonoBehaviour тогда надо зайти в юнити->edit->preferences->External Tools тут нажать на Open by file extension и выбрать visual studio community
    2)6:30 Если не показывает систему координат то нажмите кнопку с стрелками под edit
    3)Это конечно сложно назвать решением но смотрите внимательно и повторяйте в точь точь за ним прям очень
    Простите за ошибки я не грамотный

    • @uzshanka1676
      @uzshanka1676 Před 2 lety +6

      Все мои ошибки указал, добра тебе

    • @zhantoreyermukhanbetov4239
      @zhantoreyermukhanbetov4239 Před 2 lety +1

      Отдуши

    • @Sel1mka
      @Sel1mka Před 2 lety

      Бро, что делать, если когда я жму play земля пропадает, срочно

    • @Lion-programmer
      @Lion-programmer Před 2 lety

      @@Sel1mka Box collider 2D добавить

    • @user-fd9sc1fz6o
      @user-fd9sc1fz6o Před 2 lety +4

      В рай без очереди

  • @Komar0ne
    @Komar0ne Před rokem +7

    У меня проблема с прыжком, вернее с ним всё правильно. Дело в Hero, я не могу переместить точку перемещения, когда подправляю коллайдер эта точка смещается. Ну и из-за этого по скрипту мой перс не может прыгать. Есть идеи? Помогите пожалуйста!!!

  • @user-hi2qy1id6c
    @user-hi2qy1id6c Před rokem

    Урок понравился, спасибо!

  • @user-sf6sh5lp7o
    @user-sf6sh5lp7o Před 3 lety

    Очень крутой ролик, ты молодец!

  • @qwester7964
    @qwester7964 Před 3 lety +633

    А можно в конце каждого видео показывать весь код ( а то есть люди например как я которым не очень удобно в таком стиле если не сложно то спасибо ) а так всё круто

    • @random4ik_rk
      @random4ik_rk Před 3 lety +12

      да

    • @mr_huro
      @mr_huro Před 3 lety +249

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class player : MonoBehaviour
      {
      [SerializeField] private float speed = 3f;
      [SerializeField] private float jumpForce = 15f;
      private bool isGrounded = false;
      private Rigidbody2D rb;
      private SpriteRenderer sprite;
      private void Awake()
      {
      sprite = GetComponentInChildren();
      rb = GetComponent();
      }
      private void Run()
      {
      Vector3 dir = transform.right * Input.GetAxis("Horizontal");
      transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
      sprite.flipX = dir.x < 0.0f;
      }
      private void Update()
      {
      if (Input.GetButton("Horizontal"))
      Run();
      if (isGrounded && Input.GetButtonDown("Jump"))
      Jump();
      }
      private void FixedUpdate()
      {
      CheckGround();
      }
      private void Jump()
      {
      rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
      }
      private void CheckGround()
      {
      Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
      isGrounded = collider.Length > 1;
      }
      }

    • @davekup2525
      @davekup2525 Před 3 lety +28

      @@mr_huro почему у меня работает твой скрипт, но не работает скрипт с видео? там 5 ошибок выскочило

    • @ghoulclounzxc
      @ghoulclounzxc Před 3 lety +9

      @@mr_huro от душы братан

    • @mr_huro
      @mr_huro Před 3 lety +2

      @@davekup2525 не знаю

  • @ghgh-fk5xu
    @ghgh-fk5xu Před 3 lety +3

    Отличный туториал спасибо, даже у такого чайника вроде меня получилось сделать это

  • @Dana_Khromenko
    @Dana_Khromenko Před 3 lety +1

    О, это просто замечательный ролик. Всё с первого раза легко повторить без ошибок. Буквально полчаса и - оп! - ты с нуля создаёшь магию :-))))

    • @divanozavrRex
      @divanozavrRex Před 2 lety

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

  • @raslshow3860
    @raslshow3860 Před 7 měsíci

    Спасибо, очень крутая подача инфы)

    • @user-gy5ed6qq3g
      @user-gy5ed6qq3g Před 7 měsíci

      а как скачать пак графики

  • @user-iy3zw2bq9t
    @user-iy3zw2bq9t Před 3 lety +6

    Спасибо за видос, но если можно то больше комментариев вовремя работы с интерфейсом unity. Типа что такое крллайдер, зачем он и т. д.

  • @ERrOR2033
    @ERrOR2033 Před rokem +11

    Альтернатива проверки состояния IsGrounded (Без использования Update):
    private bool isGrounded = false; // Она уже должна быть создана выше, как в видео
    private void OnCollisionStay2D(Collision2D collision)
    {
    isGrounded = true;
    } //Вызывается когда есть прикосновение коллайдера объекта с другими коллайдерами
    private void OnCollisionExit2D(Collision2D collision)
    {
    isGrounded = false;
    } //Вызывается когда, происходит "выход из коллизии между объектами" (Есть противоположное OnCollisionEnter2D)

    • @Koldevay
      @Koldevay Před rokem

      При такой проверке персонаж сможет прыгать при соприкосновениями со стенами

    • @maksarh2833
      @maksarh2833 Před rokem

      @@Koldevay можно сделать 2 коллайдера, один у ног в виде точки или прямой, но по краям чуть меньше чем основной коллайдер который по размеру всего персонажа
      т.е делаем отдельный коллайдер для ног

    • @dxmp
      @dxmp Před 10 měsíci

      Спасибо! Ваш код сильно помог, использую его)

  • @BadgersAliance
    @BadgersAliance Před rokem

    Чел ты крут, спасибо тебе за труд)

  • @MARKinc21
    @MARKinc21 Před 2 lety +1

    Чувак, спасибо тебе большое, отличный урок!

  • @Rhetms
    @Rhetms Před rokem +5

    Действительно хорошая обучалка, отдельное спасибо за разъяснение как работает скрипт и все тонкости)))

    • @user-gy5ed6qq3g
      @user-gy5ed6qq3g Před 7 měsíci

      а как скачать пак графики

  • @user-hm5rb6fz6q
    @user-hm5rb6fz6q Před 3 lety +14

    круто, как раз недавно скачал один платформер на телефон, захотел что то подобное сделать

    • @user-sj9wl1oe8n
      @user-sj9wl1oe8n Před 3 lety +1

      Но ты не выложишь в плей маркет или стим, надо на ссайты, там заработаешь на то чтоб выложить в стим или плей маркет

    • @MercifulMarkiz
      @MercifulMarkiz Před 2 lety

      @@user-sj9wl1oe8n А какие есть сайты?

    • @user-sj9wl1oe8n
      @user-sj9wl1oe8n Před 2 lety

      @@MercifulMarkiz посмотри в ютике там есть

    • @MercifulMarkiz
      @MercifulMarkiz Před 2 lety

      @@user-sj9wl1oe8n Что написать нужно в ютике?

    • @user-sj9wl1oe8n
      @user-sj9wl1oe8n Před 2 lety

      @@MercifulMarkiz лучшие сервера для зароботка на своих играх

  • @zakzelman
    @zakzelman Před 3 lety +1

    Аффтор зачот! Хорошо объясняешь в скриптах, что нужно писать, но всем кто тупит советую посмотреть базовый курс по ООП в C#, чтоб хотя бы понимать что такое классы и методы иначе будете сидеть и тупить.

  • @phantom6913
    @phantom6913 Před 3 lety

    всё круто! удачи в развитии канала

  • @woof448
    @woof448 Před 3 lety +70

    у меня система координат двигается вместе с колайдером

    • @L4ke_221
      @L4ke_221 Před 3 lety +1

      +

    • @xxxeee1256
      @xxxeee1256 Před 3 lety +2

      Решил?

    • @xxxeee1256
      @xxxeee1256 Před 3 lety +1

      @@L4ke_221 решил проблему?

    • @user-bh7ji9jj4h
      @user-bh7ji9jj4h Před 3 lety +31

      Там сверху есть кнопка center(под вкладкой window), на неё надо нажать, что бы Pivot было написано

    • @woof448
      @woof448 Před 3 lety

      @@xxxeee1256 решил чел сверху

  • @user-es7ml4rr4c
    @user-es7ml4rr4c Před 2 lety +4

    ###Еще один способ для тех, у кого не смещаются системы координат:
    В Hierarchy тапаем на спрайт, выставляем в Инспекторе в полях координаты (Position) - Х, Y, Z всё на нули (это положение спрайта относительно основной директории Hero). Это позволит объединить системы координат спрайта и корневой директории Hero. Далее тапаем на сам файл спрайта (внизу в папке с материалами), затем в Инспекторе находим кнопочку "Sprite Editor". В открывшемся окне, в поле Pivot выбираем Bottom Center (Низ центр), дальше вверху в окне жмем Apply (применить). Закрываем окошко, подстраиваем коллайдер (Edit Collider) по границам спрайта - готово.

    • @KalepsJanInc
      @KalepsJanInc Před 2 lety

      спасибо

    • @user-kw8ik4zc5p
      @user-kw8ik4zc5p Před rokem

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

    • @user-es7ml4rr4c
      @user-es7ml4rr4c Před rokem

      @@user-kw8ik4zc5p понимаю, у самого так же в случае неудач. Что сказать посоветовать? Метод тыка иногда лучший способ

  • @mrminecrafter3829
    @mrminecrafter3829 Před 3 lety

    Спасибо большое автору !!!

  • @maksimzarubin39
    @maksimzarubin39 Před rokem

    Заранее спасибо. Буду смотреть

  • @trash_designer
    @trash_designer Před 3 lety +7

    Круто😍🔝

  • @user-xh3cz1rm4d
    @user-xh3cz1rm4d Před 3 lety +33

    Автору спасибо за видео. Информация для тех, у кого проблемы с установлением системы координат к ногам. Под главной панелью управления Unity (у меня прям под Window) есть кнопки "Center" и "Local". При нажатии на них их значения меняются на "Pivot" и "Global". Меняйте значения и системы координат у родительского и дочернего элементов будут разные. Ну и конечный код, а то многие просили. Только не забывайте менять название класса под имя своего скрипта.
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class PlayerCTRL : MonoBehaviour
    {
    [SerializeField] private float speed = 3f;
    [SerializeField] private int lives = 5;
    [SerializeField] private float jumpForce = 15f;
    private bool isGrounded = false;
    private Rigidbody2D rb;
    private SpriteRenderer sprite;
    private void Awake()
    {
    rb = GetComponent();
    sprite = GetComponentInChildren();
    }
    private void FixedUpdate()
    {
    CheckGround();
    }
    private void Update()
    {
    if (Input.GetButton("Horizontal"))
    Run();
    if (isGrounded && Input.GetButtonDown("Jump"))
    Jump();
    }
    private void Run()
    {
    Vector3 dir = transform.right * Input.GetAxis("Horizontal");
    transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
    sprite.flipX = dir.x < 0.0f;
    }
    private void Jump()
    {
    rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
    Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
    isGrounded = collider.Length > 1;
    }
    }

    • @vitaliibaryshev7269
      @vitaliibaryshev7269 Před 3 lety +3

      Спасибо! Голову ломал, не мог систему координат сделать правильную, Global->Pivot решило проблему.

    • @zboral10
      @zboral10 Před 3 lety +1

      Ты просто мой спаситель, благодарю!)

    • @user-xh3cz1rm4d
      @user-xh3cz1rm4d Před 3 lety +1

      @@vitaliibaryshev7269 Обращайтесь

    • @user-xh3cz1rm4d
      @user-xh3cz1rm4d Před 3 lety

      @@zboral10 Обращайтесь

    • @futuremadness
      @futuremadness Před 3 lety +1

      Ты топ!! я несклько дней ломал голову с кодом, всё выдавал ошибки, но ты меня спас! РЕСПЕКТ!!!!

  • @lexfire7806
    @lexfire7806 Před 8 měsíci

    Отличная подача и качество кода, все быстро и по делу!

  • @hamros9796
    @hamros9796 Před 3 lety +2

    Спасибо, помог! можно сердечко?

  • @thebestname6140
    @thebestname6140 Před 2 lety +3

    На 3:47 после вкладки 2д объект, спрайтс выходит выбор типо Square, Circle, Capsule и так далее. Что выбрать, когда надо делать платформу? Заранее спасибо

    • @user-mg6te1kx1v
      @user-mg6te1kx1v Před 2 lety

      Square выбирай, там изменить можно (если я правильно понимаю)

    • @thebestname6140
      @thebestname6140 Před 2 lety

      @@user-mg6te1kx1v Спасибо, а вообще всё таки какую версию новичку лучше установить?

    • @Fun_TTime
      @Fun_TTime Před 2 lety

      А когда делаешь персонажа что надо выбирать?

  • @user-ov6qd5og2b
    @user-ov6qd5og2b Před 3 lety +4

    Cделал всё то в точь как в видео, но вмест отого чтобы не делать двойной прыжок, герой просто отказывается прыгать,
    версия unity 2020.2.7f1

  • @notuzo
    @notuzo Před 2 lety +1

    КЛАСС! ТЫ ТОП!!! Очень понятно, интересно, познавательно!

  • @d1oxyon
    @d1oxyon Před rokem

    Подскажите, в какой программе вы писали скрипты, а то у меня в Ворде постоянно открывает, как сменить на эту программу?

  • @katrinselin2537
    @katrinselin2537 Před 3 lety +4

    Спасибо за видео! А как исправить то, что персонаж на прыжке просто выпрыгивает за экран? Умножение на jumpForce в методе Jump() вообще убрала, но все равно выпрыгивает. И невозможность прыгать, когда герой в воздухе, тоже не работает. Он продолжает прыгать

    • @user-ie1qr1om9w
      @user-ie1qr1om9w Před 3 lety +2

      у меня ваабще не пригает)

    • @user-tu1cc2go7r
      @user-tu1cc2go7r Před 3 lety +6

      Такая же проблема, получилось решить, изменив массу Hero в настройках RigitBoby 2D

    • @katrinselin2537
      @katrinselin2537 Před 3 lety

      @@user-tu1cc2go7r спасибо!)

    • @gtasss5282
      @gtasss5282 Před rokem

      только сейчас понял как решить. Он из периода апдейд убрал if с прыжком.

    • @durkin4099
      @durkin4099 Před rokem

      @@gtasss5282 он не убрал, он добавил isGrounded &&

  • @mudota7500
    @mudota7500 Před 3 lety +4

    Спасибо, чел, всё очень понятно.
    Пересмотрел много роликов на ютабе, и Иммено Твой ролик, показался мне самым понятным.
    (C# и Юнити для меня очень не понятны, ибо н когда не учил.
    Знаю только RenPy🤷‍♂️)

  • @user-pi4ly6kt4v
    @user-pi4ly6kt4v Před 3 lety

    Классные видео 👏🙌👍

  • @kirillmelnikov7576
    @kirillmelnikov7576 Před rokem

    спасибоо вам большое ваше видео дало желание учитться

  • @storeFL
    @storeFL Před 3 lety +59

    видео топ, все понятно, но код... с ним беды, в конце лучше показывать весь

    • @user-fu8mv5ru8v
      @user-fu8mv5ru8v Před 3 lety +13

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class Player : MonoBehaviour
      {
      [SerializeField] float speed = 3f;
      [SerializeField] int lives = 5;
      [SerializeField] float jumpForce = 15f;
      bool Ground = false;
      Rigidbody2D rb;
      SpriteRenderer sprite;

      void Start()
      {

      }
      // Update is called once per frame
      void Update()
      {
      if (Input.GetButton("Horizontal"))
      Run();
      if (Ground && Input.GetButton("Jump"))
      Jump();
      }
      void Awake()
      {
      rb = GetComponent();
      sprite = GetComponentInChildren();
      }
      void Run()
      {
      Vector3 dir = transform.right * Input.GetAxis("Horizontal");
      transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
      sprite.flipX = -dir.x < 0.0f;
      }

      void Jump()
      {
      rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
      }
      void Grounded()
      {
      Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 1f);
      Ground = collider.Length > 1;
      }
      void FixedUpdate()
      {
      Grounded();
      }
      }

    • @mrminecrafter3829
      @mrminecrafter3829 Před 3 lety

      @@user-fu8mv5ru8v спасибо большое !!!

    • @Panzer-Division
      @Panzer-Division Před 3 lety +5

      @@user-fu8mv5ru8v У тебя код с ошибками ,вот я исправил:
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class hero : MonoBehaviour
      {
      [SerializeField] float speed = 3f;
      [SerializeField] int lives = 5;
      [SerializeField] float jumpForce = 15f;
      bool Ground = false;
      Rigidbody2D rb;
      SpriteRenderer sprite;
      void Start()
      {
      }
      // Update is called once per frame
      void Update()
      {
      if (Input.GetButton("Horizontal"))
      Run();
      if (Ground && Input.GetButton("Jump"))
      Jump();
      }
      void Awake()
      {
      rb = GetComponent();
      sprite = GetComponentInChildren();
      }
      void Run()
      {
      Vector3 dir = transform.right * Input.GetAxis("Horizontal");
      transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
      sprite.flipX = dir.x < 0.0f;
      }
      void Jump()
      {
      rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
      }
      void Grounded()
      {
      Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 1f);
      Ground = collider.Length > 1;
      }
      void FixedUpdate()
      {
      Grounded();
      }
      }

    • @worldtechnology7616
      @worldtechnology7616 Před 2 lety

      @@Panzer-Division у меня по этому коду перс улетает

    • @user-mh7gc4ne8h
      @user-mh7gc4ne8h Před 2 lety

      @@worldtechnology7616 поставь гравитацию больше и джамп поменьше

  • @only4humor461
    @only4humor461 Před 3 lety +240

    Держите рабочий код:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class Hero : MonoBehaviour
    {
    [SerializeField] private float speed = 3f; // скорость движения
    [SerializeField] private int lives = 5; // скорость движения
    [SerializeField] private float jumpForce = 15f; // сила прыжка
    private bool isGrounded = false;
    private Rigidbody2D rb;
    private SpriteRenderer sprite;
    private void Awake()
    {
    rb = GetComponent();
    sprite = GetComponentInChildren();
    }
    private void FixedUpdate()
    {
    CheckGround();
    }
    private void Update()
    {
    if (Input.GetButton("Horizontal"))
    Run();
    if (isGrounded && Input.GetButtonDown("Jump"))
    Jump();
    }
    private void Run()
    {
    Vector3 dir = transform.right * Input.GetAxis("Horizontal");
    transform.position = Vector3.MoveTowards(transform.position, transform.position + dir, speed * Time.deltaTime);
    sprite.flipX = dir.x < 0.0f;
    }
    private void Jump()
    {
    rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
    private void CheckGround()
    {
    Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
    isGrounded = collider.Length > 1;
    }
    }

    • @hrammer9892
      @hrammer9892 Před 3 lety +4

      Спасибо тебе!!!

    • @hrammer9892
      @hrammer9892 Před 3 lety +4

      Только можно вопрос, как коды сохранять?

    • @user-kc7kg9om3x
      @user-kc7kg9om3x Před 3 lety +2

      огромное спасибо!

    • @sh1za452
      @sh1za452 Před 2 lety +23

      Перс не прыгает )=

    • @user-kc7kg9om3x
      @user-kc7kg9om3x Před 2 lety +4

      @@sh1za452 +++

  • @coyoralic
    @coyoralic Před 2 lety

    Спасибо большое очень крутой человек ты

  • @SashaEzh-uc4oi
    @SashaEzh-uc4oi Před 7 měsíci

    Спасибо за ролик!!

  • @florestina864
    @florestina864 Před 3 lety +9

    Помогите пожалуйста.
    Систему координат у персонажа передвинуть вниз невозможно. То есть когда я её передвигаю вниз, то вместе с ним у меня передвигается коллайдер. А потом я коллайдер передвигаю на персонажа, то потом координаты снова ставятся в середину. И так бесконечно ._. Из-за этого у меня в конце видео не работает прыжок вообще, а просто ходит персонаж.

    • @Alex-tq5fg
      @Alex-tq5fg Před 3 lety

      тоже самое.
      ты смог исправить?

    • @florestina864
      @florestina864 Před 3 lety

      @@Alex-tq5fg Да, смогла

    • @Yes.Im.Mr.Anderson
      @Yes.Im.Mr.Anderson Před 3 lety

      @@florestina864 Классно, но как?

    • @kam1zzumi896
      @kam1zzumi896 Před 3 lety

      Аналогичная ситуация

    • @florestina864
      @florestina864 Před 3 lety

      @@Yes.Im.Mr.Anderson дай свой вк, туда скину)

  • @user-vu6dn9il7y
    @user-vu6dn9il7y Před 3 lety +2

    Ребят, подскажите пожалуйста, на 6:16 он настраивает точку координат, я также выставляю её в ноги персонажу, но когда начинаю настраивать BoxCollider2D
    Эта точка координат сбивается, и становиться обратно в центре BoxCollider. Что нужно сделать чтоб и BoxCollider был нормальным, и точка координат персонажа тоже была в ногах?

    • @illiahroshev9546
      @illiahroshev9546 Před 3 lety

      Проверь куда установил BoxCollider2D, я тоже не мог выкупить, а потом как оказалось BoxCollider2D был на спрайте, проверь точно ли установлен на ГеймОбжекте

    • @teykolar
      @teykolar Před 3 lety

      @@illiahroshev9546 Спасибо))

  • @SerMichael
    @SerMichael Před 6 měsíci +1

    Можете подсказать, почему при прыжке персонаж вылетает на разную высоту(иногда достает до платформы, а иногда нет)?

  • @joyotome1725
    @joyotome1725 Před 2 lety +1

    После метода сокращения прыжков до 1, персонаж вовсе перестал прыгать. Не подскажите в чем проблема?

  • @mistermind174
    @mistermind174 Před 3 lety +7

    Если ты ещё читаешь комментарии, может скажешь, в чем проблема строки
    if (isGrounded && Input.GetButtonDown("Jump")) Jump();
    Ввожу так, как она есть и персонаж вообще перестаёт прыгать. Если убрать запись isGrounded &&, то снова идут множественные прыжки.

    • @mistermind174
      @mistermind174 Před 3 lety +6

      Все, я нашёл косяк. Проблема была не тут. У меня по какой то причине ось координат никак не желает перемещаться к ногам. Но я нашёл решение. Там, где мы прописывали массив коллайдеров, я указал 0.9f вместо 0.3f и все заработало. Баг был в том, что программа думала, что персонаж всегда в воздухе

    • @finik2562
      @finik2562 Před 3 lety

      @@mistermind174 Спасибо тебе огромное!)

    • @vitaliibaryshev7269
      @vitaliibaryshev7269 Před 3 lety

      @@mistermind174 Здесь нужно было решать проблему правильным смещением системы координат, чтобы это получилось сделать нужно чтобы опция "Pivot" была включена вместо "Center"

    • @coolbooy9990
      @coolbooy9990 Před rokem

      +++

    • @coolbooy9990
      @coolbooy9990 Před rokem +1

      @@vitaliibaryshev7269 о спасиба вам , помогло решыть проблему)

  • @Noname-rl7ih
    @Noname-rl7ih Před 3 lety +10

    Что делать если после добавления
    (isGrounded &&)
    Перестал работать прыжок
    Объясните пожалуйста

    • @hebxy-dn2wr
      @hebxy-dn2wr Před 2 lety

      нашел ответ?

    • @venompubg69
      @venompubg69 Před 2 lety

      @@hebxy-dn2wr, он, наверное, уже забыл)))

    • @hebxy-dn2wr
      @hebxy-dn2wr Před 2 lety

      @@venompubg69 а ты? пххп

    • @tunethedune9075
      @tunethedune9075 Před 2 lety

      @@hebxy-dn2wr смотри функция isGrounded работает при моменте когда точка находит под собою землю, это значит что если точка находится выше зесли то она будет считать что ты все еще в прыжке, для этого тебе нужно ее сместить до такого состояния, чтоб та могла найти ее.
      вообще для функции прыжка делают отдельный код и логигу на сенсор, его метод прост в понимание.

  • @dudundikworld3529
    @dudundikworld3529 Před 2 lety

    Спасибо, друг!

  • @booksteaphd1613
    @booksteaphd1613 Před rokem

    Большое спасибо!

  • @user-zd5qt6pu7v
    @user-zd5qt6pu7v Před rokem +9

    Урок неплохой, некоторые вещи все равно пришлось погуглить, но хотелось бы более подробного объяснения кода - хотя бы за что отвечает каждый класс. Хотя в целом я все интуитивно поняла т.к. пишу на Java, но все равно хотелось бы побольше комментариев потому что код - это основная часть игры и новеньким может быть несовсем все понятно ❤

  • @DedHacan
    @DedHacan Před 3 lety +37

    нужели кто то подробно обьяснил про скрипты в Юнити, а не тупо писал код на скорости х1,75 , спасибо за видео

    • @bruice1805
      @bruice1805 Před 3 lety +2

      czcams.com/video/CAPVBTKk3Ww/video.html

  • @kitt_co
    @kitt_co Před 6 měsíci

    Подскажите пожалуйста, после сборки проекта персонаж не прыгает, но при этом нормально ходит. Как это можно исправить? Делала как в видео, только силу прыжка меньше делала - 0.1f.

  • @user-ok9vq8wz6e
    @user-ok9vq8wz6e Před 2 lety +2

    Что делать, если после создания скрипта ничего не открывается? Код открывается только через обычный документ Майнкрасофт, с непонятными символами. Нужно установить программу для редактирования кода? Или что?

  • @ViniLog977
    @ViniLog977 Před 11 měsíci +7

    Прыжок можно сделать легче через Mathf отслеживать есть ли под игроком блок
    Вот скрипт примера:
    if (Mathf.Abs(rb.velocity.y) < 0.005f && Input.GetButtonDown("Jump"))
    Jump();

    • @dxmp
      @dxmp Před 10 měsíci +1

      Огромное спасибо тебе!) Метод прышка из видео у меня тупо не работал

    • @starlistsaki
      @starlistsaki Před 9 měsíci

      у меня тоже
      @@dxmp

    • @haveprm
      @haveprm Před 2 měsíci

      боже друг, да ты бог, спасибо огромное

    • @user-lf6gh9ir1i
      @user-lf6gh9ir1i Před 2 měsíci

      Для тебя отдельное место в раю

  • @den4k857
    @den4k857 Před rokem +5

    У меня одного перестал прыгать в конце?

  • @GameBoy-tw6sw
    @GameBoy-tw6sw Před 3 lety +10

    Друзья, вопрос такой. Почему при сдвиге системы координат персонажа, точно так же, как указано в видео, стрелки направления координат х/y двигаются вместе с персонажем и выходят за рамки зелёного квадрата. Т.е. нажимаю на new sprite, затем двигаю персонажа вверх до того места, где находилась ось, после нажимная на Hero, оси находятся не внутри зелёного квадрата, а над ним.

    • @user-ze1dl5bk7x
      @user-ze1dl5bk7x Před 2 lety +2

      Смогли исправить?

    • @user-zw7gw1yq9m
      @user-zw7gw1yq9m Před 2 lety +3

      @@user-ze1dl5bk7x у меня почти такая же проблема,автор забыл видимо пропустил что то показать,потому что делаю все как на видео,а не получается

    • @user-kw8ik4zc5p
      @user-kw8ik4zc5p Před rokem

      такая же проблема, повторяю всё как на видео, но бокс коллайдер смещается вниз из-за этого. когда подгоняю его снова по персонажа, то ось тоже сдвигается. бесит, ппц.

    • @k00w111
      @k00w111 Před rokem

      объект персонажа с его хитбоксом (зеленым квадратом) - это одно, а спрайт, картинка которую ты двигаешь - это другое. если нужно переместить зеленый квадрат то выбирай в панели объектов самого персонажа

  • @Dukeee
    @Dukeee Před 2 lety +2

    Автор, как так получается что у тебя центр координат смещается, а у всех остальных нет?

  • @user-sm2eo7fq7h
    @user-sm2eo7fq7h Před 2 lety +6

    Почему когда я пишу:
    if (isGrounded && Input.GetButtonDown("Jump"))
    Jump();
    когда я добавляю туда isGrounded && персонаж отказывается прыгать?

    • @CinemaRover
      @CinemaRover Před 2 lety

      У меня так же, только он не прыгает на стыках, а по центру квадрата норм

    • @svmrak.
      @svmrak. Před 2 lety

      нашел решение?

    • @wordic6268
      @wordic6268 Před 2 lety +2

      isGrounded = collider.Length > 1; Вместо 1, поставь 0.
      isGrounded = collider.Length > 0;

    • @wordic6268
      @wordic6268 Před 2 lety

      @@CinemaRover .

    • @wordic6268
      @wordic6268 Před 2 lety

      @@svmrak. .

  • @HunkoHS
    @HunkoHS Před 3 lety +8

    Можешь снять видео как ты сам пишешь этот код , заранее спасибо)

    • @ResPack
      @ResPack Před 3 lety +3

      В топ этот коммент!

  • @askol_d3106
    @askol_d3106 Před 2 lety

    Спасибо, реально помог

  • @user-tl7xz9jw8u
    @user-tl7xz9jw8u Před 3 lety

    Спасибо за видео

  • @molot1771
    @molot1771 Před 3 lety +10

    Я сделал isGrounded как в видео и почему-то у меня персонаж перестал прыгать. Как это решить?

    • @pishy_kommentu
      @pishy_kommentu Před 3 lety

      Ну как решил?

    • @vas1z
      @vas1z Před 2 lety +2

      Ребят!!,У кого после CheckGround не прыгает перс, просто поизменяте последнее число ,там где 0.3f --> Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f); Я число 3 поставил и всё прекрасно работает!

    • @snegcode
      @snegcode Před 2 lety +2

      @@vas1z Не рубит

    • @AOH2-bw4ni
      @AOH2-bw4ni Před 2 měsíci

      ​@@snegcode ставь 9

  • @konwertwert3309
    @konwertwert3309 Před 3 lety +3

    Что делать если смешается система координат у челика?