Основы программирования: перемещение объекта с помощью скрипта. Input, if

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 พ.ย. 2024

ความคิดเห็น • 57

  • @axbox
    @axbox ปีที่แล้ว +38

    Дружище, тебе бы записать свой собственный курс по С#. У тебя, наверное, самое доходчивое объяснение из всех, чьи ролики смотрел на ютубе по теме) 👍

    • @Артём-ю3э2ч
      @Артём-ю3э2ч ปีที่แล้ว +3

      это забавно. Он и продаёт курс)

  • @martoyas
    @martoyas 2 ปีที่แล้ว +15

    Я тебя люблю мужик, особенно твой материал :), не один месяц искал инфу как сделать чтобы можно было двигать персонажем на клавиши W,S,A,D и при этом ещё иметь возможность покрутить камерой в разные стороны привязав её к мыши, хорошее объяснение и чтоб ещё понять сам код... Огромное тебе спасибо за материал!!!

  • @Life-wq4tl
    @Life-wq4tl ปีที่แล้ว +4

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

  • @eugenev423
    @eugenev423 ปีที่แล้ว +3

    Первый нормальный курс по c# для unity на ютуб, рекомендую

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว

      Спасибо за высокую оценку нашего курса. Рады, что он помог вам в создании игр.

    • @СергейМартынов-ф4ю
      @СергейМартынов-ф4ю ปีที่แล้ว

      согласен. По C# также рекомендую курс на ютубе от #Simplecode. Мне очень зашел

  • @bloknot4956
    @bloknot4956 8 หลายเดือนก่อน +2

    Как же он хорош. Все очень понятно объясняет даже для таких тупых людей как я ;)

    • @yagamesdev
      @yagamesdev  8 หลายเดือนก่อน

      Здравствуйте. Рады, что курс вам понравился 🙂

  • @ДенисСаранин-м1и
    @ДенисСаранин-м1и หลายเดือนก่อน

    5:00 третья функция комментария - повысить количество строк, за которые платят

  • @octopus9166
    @octopus9166 ปีที่แล้ว

    Лучший просто

  • @OkMiracle
    @OkMiracle ปีที่แล้ว +1

    Прикольно=)))

  • @СергейМартынов-ф4ю
    @СергейМартынов-ф4ю ปีที่แล้ว +1

    Почему мы используем Vector3 ? Я так понимаю, что третий вектор отвечает за ось Z . Так? Но при этом мы указываем все три координаты и можем смещать/вращать/масштабировать по всем осям. Тогда почему Vector 3 И что тогда Vector 1 и 2?

    • @MichaelSwatterzz
      @MichaelSwatterzz ปีที่แล้ว

      для таких любопытных как ты есть гугл.

    • @СергейМартынов-ф4ю
      @СергейМартынов-ф4ю ปีที่แล้ว +1

      @@MichaelSwatterzz если не знаешь - мог бы и пройти мимо. Твое мнение очень важно для нас.

  • @СергейМартынов-ф4ю
    @СергейМартынов-ф4ю ปีที่แล้ว +1

    Еще вопрос какой метод позволяет перехватывать тапы по экрану мобильных устройств ?

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว +2

      Сергей, здравствуйте. Да, в Unity и C# можно использовать событие Input.touch, чтобы перехватывать тапы по экрану мобильных устройств. Делимся примером кода:
      // Проверка на сенсорный ввод
      if (Input.touchCount > 0) {
      // Обход всех прикосновений
      for (int i = 0; i < Input.touchCount; i++) {
      Touch touch = Input.GetTouch(i);
      // Проверка, что это был тап
      if (touch.phase == TouchPhase.Began) {
      // Ваш код обработки тапа
      }
      }
      }
      Эти строки проверяют наличие сенсорного ввода, затем проходят по всем тапам и проверяют, что фаза TouchPhase равна Began - это означает, что пользователь только что коснулся экрана, и тап только начался.

    • @СергейМартынов-ф4ю
      @СергейМартынов-ф4ю ปีที่แล้ว +1

      @@yagamesdev немного странный вопрос - учеников не берете? Я имею ввиду менторство?

  • @sleepless6740
    @sleepless6740 8 หลายเดือนก่อน

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

    • @yagamesdev
      @yagamesdev  8 หลายเดือนก่อน

      Здравствуйте. Чтобы Unity мог правильно распознать нужную IDE, необходимо зафиксировать выбор в настройках. Для этого перейдите в «Edit», далее выберите «Preferences» - «External Tools» и в поле «External Script Editor» укажите вашу актуальную среду разработки. Это должно помочь.

  • @manontherun2489
    @manontherun2489 ปีที่แล้ว

    Подскажите какие дополнения нужно скачать в вижуал студио код что бы она видела скрипты которые используются в юнити и не нужно было их самому писать

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว

      Здравствуйте. Чтобы Visual Studio Code корректно работала со скриптами Unity, необходимо установить Unity Debugger и C# Extension. Unity Debugger позволяет отлаживать скрипты Unity в Visual Studio Code. C# Extension помогает подсвечивать синтаксис и выполнять автодополнение кода для скриптов C# в Unity.

    • @manontherun2489
      @manontherun2489 ปีที่แล้ว

      @@yagamesdev почему то эти дополнения не работают, а может не те скачал. а для майкрасофт визуал так же они подходят или другие нужны?

  • @mem-tube-app
    @mem-tube-app 2 ปีที่แล้ว +3

    А почему никто не говорит, что есть официальный бесплатный курс от Unity? Очень крутой. Правда на английском. Но это не должно стать проблемой.

    • @Gogsan
      @Gogsan 2 ปีที่แล้ว +1

      скинь ссылку

    • @НикитаБельков-л5б
      @НикитаБельков-л5б 2 ปีที่แล้ว

      @@Gogsan Unity Learn

    • @dolinakaktusovkoncert
      @dolinakaktusovkoncert 2 ปีที่แล้ว

      Это, я думаю, его перевод

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว +1

      Здравствуйте. Чтобы создать первую игру, достаточно пройти наш курс. Однако вы можете рассматривать и дополнительные источники :)

  • @ALEX.AB12
    @ALEX.AB12 ปีที่แล้ว

    А в Visial Studio 2022 надо что то докачивать для юнити если да то что?

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว

      Александр, здравствуйте. Чтобы Visual Studio Code корректно работала со скриптами Unity, можно установить Unity Debugger и C# Extension. Unity Debugger позволяет отлаживать скрипты Unity в Visual Studio Code. C# Extension помогает подсвечивать синтаксис и выполнять автодополнение кода для скриптов C# в Unity.

    • @ALEX.AB12
      @ALEX.AB12 ปีที่แล้ว

      @@yagamesdev спасибо

  • @xxyuliaxx8989
    @xxyuliaxx8989 4 หลายเดือนก่อน

    if (UnityEngine.Input.GetMouseButtonDown(1)). Здравствуйте! Скажите, пожалуйста, почему у меня перед вводом команды Input постоянно просит исправить на UnityEngine.Input. Большое спасибо!

    • @yagamesdev
      @yagamesdev  4 หลายเดือนก่อน

      Здравствуйте. Такое уведомление означает, что в скрипте присутствует подключение библиотек «using», которые также содержат класс «Input». Чтобы не было конфликтов, Unity дописывает предполагаемую библиотеку перед методом.

    • @xxyuliaxx8989
      @xxyuliaxx8989 4 หลายเดือนก่อน

      @@yagamesdev Огромное Вам спасибо!

  • @ahega0bossainsoft472
    @ahega0bossainsoft472 3 หลายเดือนก่อน

    У меня проблема, мне VSCode не предлагает нормальную замену. Как решить проблему?

    • @yagamesdev
      @yagamesdev  3 หลายเดือนก่อน

      Здравствуйте. В этом случае необходимо скачать расширение: clck.ru/3CFYCa. Затем установить его в Unity через «Package Manager: Visual Studio Editor».
      После этого необходимо открыть в «Unity Preferences» - «External Tools» - «External Script Editor» и выбрать или добавить «VSCode».

  • @igorcoolman
    @igorcoolman ปีที่แล้ว +1

    поскольку я сишарп немного знаю про f сразу догадался и код написал раньше чем у вас )
    if (Input.GetKey(KeyCode.W))
    {
    transform.position = transform.position + new Vector3(0, 0.01f, 0);
    }
    if (Input.GetKey(KeyCode.S))
    {
    transform.position = transform.position + new Vector3(0, -0.01f, 0);
    }
    if (Input.GetKey(KeyCode.D))
    {
    transform.position = transform.position + new Vector3(0.01f, 0, 0);
    }
    if (Input.GetKey(KeyCode.A))
    {
    transform.position = transform.position + new Vector3(-0.01f, 0, 0);
    }
    а как через switch сделать?

    • @АртемийБобров-р2б
      @АртемийБобров-р2б 11 หลายเดือนก่อน

      Понял как сделать тоже самое через switch?

    • @igorcoolman
      @igorcoolman 11 หลายเดือนก่อน

      ​@@АртемийБобров-р2б
      // Получаем нажатую клавишу
      KeyCode key = Input.inputString[0];
      // Используем switch для проверки разных случаев
      switch (key)
      {
      // Если нажата клавиша W, двигаемся вверх
      case KeyCode.W:
      transform.position = transform.position + new Vector3(0, 0.01f, 0);
      break; // Выходим из switch
      // Если нажата клавиша S, двигаемся вниз
      case KeyCode.S:
      transform.position = transform.position + new Vector3(0, -0.01f, 0);
      break; // Выходим из switch
      // Если нажата клавиша D, двигаемся вправо
      case KeyCode.D:
      transform.position = transform.position + new Vector3(0.01f, 0, 0);
      break; // Выходим из switch
      // Если нажата клавиша A, двигаемся влево
      case KeyCode.A:
      transform.position = transform.position + new Vector3(-0.01f, 0, 0);
      break; // Выходим из switch
      // Если нажата другая клавиша, ничего не делаем
      default:
      break; // Выходим из switch
      }

    • @mr.underwood4569
      @mr.underwood4569 9 หลายเดือนก่อน

      ​@@igorcoolman Проверил, не рабочий метод. Для KeyCode key = Input.inputString[0] нужно приведение типа: KeyCode key = (KeyCode)Input.inputString[0], а в таком случае сыплет в консоль ошибки о выходе за пределы массива на каждом кадре. Похоже на какой-то костыль требующий доработки, а не решение

  • @АлексейВарягин-т5т
    @АлексейВарягин-т5т 2 ปีที่แล้ว +4

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

    • @Shein_Vettons
      @Shein_Vettons 4 หลายเดือนก่อน

      Не сохранил изменения кода

  • @Daniil_Staffer
    @Daniil_Staffer 2 ปีที่แล้ว +2

    Как сделать анимацию из игры poppy playtime

    • @timon1816
      @timon1816 ปีที่แล้ว +2

      выйди в окно плиз

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว +1

      Даниил, здравствуйте. Подробнее о создании анимации и её добавлении в игру рассказываем в отдельном видеоуроке: clck.ru/34PFgR

    • @Defis_22
      @Defis_22 9 หลายเดือนก่อน +1

      Почему?@@timon1816

  • @Владислав-э5т2м
    @Владислав-э5т2м 2 ปีที่แล้ว +1

    спасибо. почему может быть такое, что при написании кода не показывает возможные варианты команд, пока ее не напишешь один раз?

    • @antigames4656
      @antigames4656 2 ปีที่แล้ว +2

      Пересмотри видео установка юнити там расскажет

    • @andreyradostny
      @andreyradostny 2 ปีที่แล้ว +2

      Мне помогло зайти в Unity в Edit > Preferences и там в строке External Script Editor выбрать Microsoft Visual Studio. Перезапустил студию и все заработало!

    • @akim53
      @akim53 ปีที่แล้ว +1

      @@andreyradostny от души👍

  • @pispis3617
    @pispis3617 ปีที่แล้ว

    Какой-то в Unity не совсем стандартный c#
    Особо юнити никогда не интересовался, и решил просто для разнообразия этот плейлист изучить.
    С .net я уже очень хорошо знаком, т.к. работаю в этой области
    И очень удивился с конвенции именования и в целом стиля кода, который принят(?) в Unity
    Хотя походив по гит хабу я еще больше удивился, ведь там вообще везде все разное)
    В одном и том же листинге могут быть публичные поля и с большой и маленькой буквы.
    Рандомно кликал по проектам на гитхабе и такое было везде.
    Т.е получается у Unity вообще нет конвенции по стилю кода или она какая-то своя?

    • @Igorek055
      @Igorek055 ปีที่แล้ว

      Юнити использует модифицированный шарп, так что да, придется учиться по новой

    • @pispis3617
      @pispis3617 ปีที่แล้ว +1

      ​@@Igorek055 учиться по новой не придется)
      Единственное, это учить уже особенности движка, но в целом, даже для c# разраба уровня интерна - джуна будет оч просто. Ну, основы уж точно.
      Дальше основ не скажу, т.к. прошел курс больше для разнообразия, нежели для того, чтобы погрузиться в разработку на Unity.
      Ну и что касается "модифицированного" шарпа. На модифицированный он не похож, скорее на урезанный, т.к. там шарп 10 летней давности примерно)
      Единственное неудобство с которым я столкнулся, это несоблюдение официальной .net конвенции по стилю и именованию кода.
      А так, в остальном все очень просто, если учитывать, что пишешь на старом шарпе, то трудностей не возникает.

  • @ПавелСуханов-ц2х
    @ПавелСуханов-ц2х 2 ปีที่แล้ว +1

    Команда transform.eulerAngles не работает одновременно для клавиатуры и мыши? Задал вращение мышкой вокруг оси у, а с клавиш q и e вокруг оси z. С мышки в итоге управляется, а с кнопок нет. Хотя если отключить строчку с командой для мыши, то вращение с клавиш работает. Или я что-то не так понимаю?
    if (Input.GetKey(KeyCode.Q)) //при нажатии Q
    {
    transform.eulerAngles += new Vector3(0, 0, 2); //Вращать по часовой стрелке вокруг z
    }
    if (Input.GetKey(KeyCode.E)) //при нажатии E
    {
    transform.eulerAngles += new Vector3(0, 0, -2); //Вращать против часовой вокруг z
    }
    transform.eulerAngles = new Vector3(0, Input.mousePosition.x, 0); //Вращать вокруг y

    • @andreyradostny
      @andreyradostny 2 ปีที่แล้ว +2

      Смотри, весь код в методе выполняется по порядку, строчка за строчкой. Прежде, чем Unity выведет на экран новый кадр, она должна полностью завершить весь метод Update(). Теперь внимательно пройдись по всему методу по порядку строчка за строчкой глазами: сначала Unity спрашивает, нажал ли ты кнопки. Видит, что нажал и меняет значения углов объекта. НО! Пока еще не отрисовывает это на экране(!) Дальше Unity переходит к следующим строкам кода по порядку и в последней строке видит, что ты присваиваешь вращению по x и z ноль, а вращению по y - позицию мышки. И только теперь она отрисовывает кадр. То есть(!) неважно, что ты там вводил кнопкам. Своей последней строчкой ты просто все это заменяешь на (0, Input.mousePosition.x, 0).
      Если еще нужно, могу написать, как изменить твой код, чтобы работало и с кнопок, и с мыши. Удачи!

    • @yagamesdev
      @yagamesdev  ปีที่แล้ว

      Павел, здравствуйте. В коде видим, что значение eulerAngles по оси Z меняется на 0. Эту строчку можно заменить на следующую:
      transform.eulerAngles = new Vector3(0, Input.mousePosition.x, transform.eulerAngles.z)
      Тогда вращение должно сработать для мыши и клавиатуры.