Стрельба по направлению клика в Unity

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • В этом видео я покажу как сделать логику стрельбы по направлению клика мыши в Unity.
    / graphicaldesignua - мой патреон для поддержки)
    unity.com/ru - ссылка на Unity

Комментарии • 119

  • @it1shka
    @it1shka 5 лет назад +34

    класс. У тебя очень годные уроки, просто ОЧЕНЬ. Вот честно, я гуглил вопросы по Unity C# и почти на каждый 3-й запрос у тебя есть видео.

  • @unitynavigator3328
    @unitynavigator3328 5 лет назад +11

    За скорость выхода контента - мое почтение ))) приятно видеть такую активность.

  • @buzzerbeatz5927
    @buzzerbeatz5927 5 лет назад +2

    Как раз задавался вопросом, как сделать такую стрельбу, а тут видео. Спасибо)

  • @Paul-kq2ty
    @Paul-kq2ty 2 года назад

    Это очень хороший гайд. Не загружен лишним, понятный и не очень долгий.

  • @Dunai_Perjaslawsky
    @Dunai_Perjaslawsky 5 лет назад

    Спасибо! Это отличнейший урок. Код элегантный и простой. В других уроках для того же результата ооочень часто такие простыни пишут что не специалисту вообще тяжело понять.

  • @workshopoleg5661
    @workshopoleg5661 4 года назад +6

    Ты делаешь отличные гайди, благодаря тебе выиграл хакатон

  • @ПавелКрасавчик-т7м
    @ПавелКрасавчик-т7м 5 лет назад +3

    Несколько дней от тебя нет вестей, а потом за один день загружаешь 4 ролика. Ты в курсе что можно выставить дату публикации ролика. Можно загрузить ролик на канал, и поставить "опубликовать" через день, два, неделю. Тогда не будет пробелов, окон в публикации и ролики будут выходить раз в два дня а не 4 ролика в день один раз в неделю. Хотя возможно у тебя изначально есть какая то тактика и ты ее придерживаешься.
    P.s. ролики твои классные, ставлю лайки. Удачи!

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад +2

      Ролики я обычно выкладываю по сто процентной готовности. Этой ночью я поставил ренедрится все 4 смонтаженных видоса. Они есть, их и выкладываю)

  • @user-xf1iz6om1x
    @user-xf1iz6om1x 5 лет назад +5

    ГДЕ ТЫ БЫЛ РАНЬШЕ? очень годно спасибо!

  • @Dunai_Perjaslawsky
    @Dunai_Perjaslawsky 5 лет назад

    я даже надеяться не мог что ты выложишь анонс уроков на эту тему на следующий день после моего вопроса! Спасибо тебе огромное!

  • @Imudonnn
    @Imudonnn Год назад

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

  • @хайтек-ц9й
    @хайтек-ц9й 4 года назад

    ЕДИНСТВЕННЫЙ ПОНЯТНЫЙ урок на эту тему

  • @user-lx1vg9hv8g
    @user-lx1vg9hv8g 5 лет назад

    Очень доволен уроками, спасибо!

  • @МаксимТрифонов-т8ь
    @МаксимТрифонов-т8ь 4 года назад

    Привет!)) Думал твой способ не работает, оказалось это я балбес перспективный режим включил на камере вместо ортографического!!! Все заработало, твой код как всегда элегантен! Здоровья тебе)))

  • @UFedor-hf3ys
    @UFedor-hf3ys 5 лет назад

    Спасибо ты единственный кто мне помог искал 3-дня подписался лайк поставил хотелось бы ещё знать как делать автомат

  • @user-lx1vg9hv8g
    @user-lx1vg9hv8g 5 лет назад +6

    Сделай пожалуйста урок по прыжкам. Что-бы высота прыжка зависела от долготы зажатия клавиши (как в Hollow Knight). Я искал подобное, но не смог найти подробный урок с хорошими объяснениями.

  • @Roman_SBB
    @Roman_SBB 5 лет назад

    Благодарю за видео. как раз об этом спрашивал)

  • @Dunai_Perjaslawsky
    @Dunai_Perjaslawsky 5 лет назад +3

    Очень хотелось бы урок от тебя по подбору оружия и выбросу его.

  • @user-lm7xn7re4w
    @user-lm7xn7re4w 5 лет назад

    Спасибо большое я этого ждал спасибо!!!!

  • @kalmikff
    @kalmikff 5 лет назад +1

    День добрый, уроки и в правду очень хорошие. Не могли бы вы показать, как реализовать направление стрельбы для джойстика, по типу того, как это было реализовано в шутерах на ту же самую Сегу. Был бы очень признателен за подобный урок (=

    • @Pirozho
      @Pirozho 4 года назад

      Интернет тебе в помощь

  • @varol5884
    @varol5884 4 года назад +1

    Спасибо 🤛

  • @MotivatorsM
    @MotivatorsM 4 года назад +1

    Ты крут!!!

  • @mrben6868
    @mrben6868 5 лет назад +1

    Спасибо за урок, подписка с меня однозначно👍
    Вопрос такой: а как сделать чтобы стрела/ракета через летела по траектории ? Сделай,пожалуйста, видео или на комент ответь )

  • @schulz7291
    @schulz7291 5 лет назад

    Спасибо за помощь!)

  • @alegor5530
    @alegor5530 4 года назад +1

    спасибо помогло

  • @LimeShow
    @LimeShow 4 года назад +2

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

  • @buhgalter7574
    @buhgalter7574 3 года назад

    Прекрасные уроки, использую их для реализации движения своего персонажа.
    Возникла следующая ситуация, есть анимация спрайтами, в которой персонаж прорисован уже с оружием (без возможности отделения оружия), в связи с этим вопрос, возможно проигрывать анимацию в зависимости от положения мышки (или объекта shotDir как в этом уроке)?
    Попробую объяснить сущность вопроса более внятно. Существует 10 кадров персонажа в котором положение его руки и оружия меняется от +60 градусов до -45 градусов по оси Z, возможно ли, проигрывать анимацию по одному кадру на каждые 10 градусов движения объекта shotDir? Я понимаю что проще сделать костную анимацию рук, но все же...

  • @freizef2237
    @freizef2237 5 лет назад

    Очень круто

  • @hummylisii8237
    @hummylisii8237 5 лет назад +2

    Хотелось бы на телефоне чтобы по нажатию персонаж стрелял туда.

  • @dember.pixel.art.gamedev
    @dember.pixel.art.gamedev 3 года назад +2

    отличный урок но у меня почему-то пуля не отображается на камере хотя на сцене она появляется, я даже делал новые префабы. Что делать? Помоги пожалуйста

  • @user-mo5wt4ue2r
    @user-mo5wt4ue2r Год назад

    а теперь попробуй использовать clamp для ограничения угла орудия :) если игрок повёрнут в правую и в левую сторону :)

  • @user-ik6bg9pei
    @user-ik6bg9pei 5 лет назад

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

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Ес) за ближайшие пару дней уже выйдет первый урок с реализацией огнестрельного оружия.

  • @sodden_steam
    @sodden_steam 3 года назад

    Круто

  • @Storm1088
    @Storm1088 4 года назад +1

    Привет! А как сделать что бы при стрельбе (скажем автомата), пули летели с небольшим отклонением по оси X (от -0,3 до 0,3)!??

  • @Geva265
    @Geva265 3 года назад

    'Camera' does not contain a definition for 'ScreenToWorIdPoint' and no accessible extension method 'ScreenToWorIdPoint' accepting a first argument of type 'Camera' could be found (are you missing a using directive or an assembly reference?) что делать?

  • @never4441
    @never4441 4 года назад +1

    Подскажите как сделать, чтобы поворот оружия не превышал 90 градусов вверх и вниз?

    • @rybinded
      @rybinded 2 года назад

      Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
      float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
      rotZ = Mathf.Clamp(rotZ, -45, 45); // Ограничение по углам наведения
      transform.rotation = Quaternion.Euler(0f, 0f, rotZ + offset);

    • @never4441
      @never4441 2 года назад

      @@rybinded Ахахах, год спустя ответили. Спасибо ))

    • @rybinded
      @rybinded 2 года назад +1

      @@never4441 Ну, когда прочитал тогда и ответил))) А вдруг тебе еще нужно... Или кому-то другому...

  • @bomjome9475
    @bomjome9475 5 лет назад +3

    10:00 быстрее будет вместо Invoke прописать Destroy(gameObject, destroyTime);

    • @bomjome9475
      @bomjome9475 5 лет назад

      Если что, я не пытаюсь придраться к автору, мне нравятся его видео

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад +1

      Это и не выглядит как придирка) Все отлично) Вполне адекватное мнение)

    • @user-dc4qu1zi4c
      @user-dc4qu1zi4c 4 года назад

      как этот кусок кода работает?

    • @stmihan_
      @stmihan_ 4 года назад +1

      @@user-dc4qu1zi4c Destroy(уничтожаемый объект, задержка перед уничтожением(тип переменной должен быть флоат float))

    • @user-dc4qu1zi4c
      @user-dc4qu1zi4c 4 года назад

      @@stmihan_ посябки

  • @rybinded
    @rybinded 2 года назад

    Классное видео. А как ограничить зону активности мышки? Ну, например у меня кнопки управления персонажем внизу и когда я на них кликаю, то оружие поворачивается в сторону кнопки. Нажимаю идти "вправо" и арбалет целится на кнопку ибо я по ней кликнул.

  • @timofei9676
    @timofei9676 5 лет назад

    Спасибо.
    Как можно реализовать "Flip" персонажа и оружия при помощи курсора и ограничение поворота за курсором (например не 360, а 100 и -100)?

    • @igrochainik
      @igrochainik 5 лет назад +2

      После строки float rotateZ, можно добавить:
      rotateZ = Mathf.Clamp(rotateZ, -30f, 30f);
      Объект будет следить за мышью в диапазоне 60 градусов.
      Но на Flip он не реагирует, так и остаётся повернутым в сторону.

    • @timofei9676
      @timofei9676 5 лет назад

      @@igrochainik спасибо

    • @never4441
      @never4441 4 года назад +1

      @@igrochainik Спасибо, но можете подсказать как сделать чтобы при кокретном угле поворота оружия, персонаж поворачивался?

  • @t.f_fedos2507
    @t.f_fedos2507 4 года назад +1

    будет работать при нажатии на экране смартфона?

    • @graphicaldesign2776
      @graphicaldesign2776  4 года назад

      T.F_FEDOS если написать под смартфон, то будет

    • @thekaka1243
      @thekaka1243 4 года назад

      @@graphicaldesign2776 Хай это я ток сдругого акка. Я не очень понял,можешь подскозать что нужно подставить вместо Input.mousePosition чтоб работало на андроид??????????????? P.S "уже надежда пропала"

    • @Pirozho
      @Pirozho 4 года назад +1

      @@thekaka1243 честно говоря,есть специальный асет под телефоны называется "Standard Assets" там чего только нет под мобильники и кнопки,и джойстики и т.д .Вот его и можешь использовать

  • @dendendor8976
    @dendendor8976 4 года назад

    6:38 извините, пожалуйста подскажите, как скрыть объект: "стрела"?

  • @2312-h1g
    @2312-h1g 4 года назад +2

    7:39 как это добавить под кнопку?

    • @bay-2363
      @bay-2363 4 года назад

      если под джостик то вот
      public float offset;
      public Joystick joystickTo;
      void Start()
      {
      }
      void Update()
      {
      Vector2 differencetO = new Vector2(joystickTo.Horizontal, joystickTo.Vertical);
      float rotateZ = Mathf.Atan2(differencetO.y, differencetO.x) * Mathf.Rad2Deg;
      transform.rotation = Quaternion.Euler(0f, 0f, rotateZ);
      }

  • @zloykot9401
    @zloykot9401 4 года назад

    коды для мобильных и пк игр чем либо отличаются?

  • @nukem8265
    @nukem8265 2 года назад

    Я правильно понимаю, что пока летит стрела, поворот арбалета не возможен?

  • @cerf14506
    @cerf14506 4 года назад

    Здравствуйте, гайд помог, но есть вопросы.
    1. Как сделать, чтобы при столкновении с enemy enemyполучал урон
    2. Я сделал код, без поворота мышью, т к мне так нужно, но пуля летит только в право, как исправить?

    • @graphicaldesign2776
      @graphicaldesign2776  4 года назад

      Немного странные вопросы, так как это вообще отдельные скрипты надо писать.
      1) Написать скрипт с вычитанием жизней при столкновении.
      2) Дописать в скрипте поворот на 180 градусов.

  • @3reich1212
    @3reich1212 3 года назад

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

  • @molodoykey
    @molodoykey 5 лет назад

    Помоги, у меня почему-то один снаряд выпускается и при повторном нажатии мышки ничего не происходит.
    Делал все идентично

    • @dronsan-unity7302
      @dronsan-unity7302 3 года назад

      счетчик скорее всего не обновляешь после выстрела

    • @allbyk
      @allbyk 3 года назад

      @@dronsan-unity7302 а в каком это блоке сори я новичок

    • @dronsan-unity7302
      @dronsan-unity7302 3 года назад

      @@allbyk код надо видеть, чет уже не помню, что там)

  • @danbkaz9128
    @danbkaz9128 4 года назад

    Привет, спасибо за урок. А как сделать, чтобы пуля пропадала при прикосновении к колайдеру?

  • @bay-2363
    @bay-2363 4 года назад

    Camera.main не имеет такое значение и я не знаю что тогда делать потскажи пж

  • @ДобрыйСалатик
    @ДобрыйСалатик 4 года назад +4

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

    • @Pirozho
      @Pirozho 4 года назад +3

      Нужно трудиться ,чтобы что-то получить

  • @dalness6331
    @dalness6331 5 лет назад

    "Camera" не содержит определение для "main"
    Что делать? Пожалуйста подскажите

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Toxic Soul проверить скрипт на ошибки

    • @dalness6331
      @dalness6331 5 лет назад

      @@graphicaldesign2776 using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class BoneGun : MonoBehaviour
      {
      public float offset;
      // Start is called before the first frame update
      void Start()
      {

      }
      // Update is called once per frame
      void Update()
      {
      Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
      float rotateZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
      transform.rotation = Quaternion.Euler(0f, 0f, rotateZ + offset);
      }
      }
      я не заметил каких либо ошибок

  • @TheVitaliy17
    @TheVitaliy17 4 года назад

    NullReferenceException: Object reference not set to an instance of an object
    gun.Update () (at Assets/Scenes/scripts/gun.cs:14)
    using System.Collections;
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using UnityEngine;
    public class gun : MonoBehaviour
    {
    public float offset;
    void Update()
    {
    Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position; ;
    float rotateZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.Euler(0f, 0f, rotateZ + offset);
    }
    }
    Шо делать

  • @bezee9287
    @bezee9287 4 года назад

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

    • @graphicaldesign2776
      @graphicaldesign2776  4 года назад

      Это очень абстрактный вопрос. И никто конкретно на него не ответит. Потому что основной ответ выглядит как "поставить ограничения поворота". Как минимум начни, а там уже появятся более конкретные вопросы

  • @daniilmirnow
    @daniilmirnow 4 года назад

    Как перевернуть оружие, когда персонаж смотрит влево?

    • @graphicaldesign2776
      @graphicaldesign2776  4 года назад

      Я продемонстрировал все в этой серии уроков.

    • @daniilmirnow
      @daniilmirnow 4 года назад +1

      @@graphicaldesign2776 Таймкод?

    • @graphicaldesign2776
      @graphicaldesign2776  4 года назад

      Да, серия уроков по глобальной настройки оружия

  • @user-lw1ep6zl5s
    @user-lw1ep6zl5s 5 лет назад

    Как ограничить вращение арбалета?

  • @karpa2895
    @karpa2895 5 лет назад

    Прикол, в том что сама стрельба по прошлым роликам (у вас) у меня всё работает, но при этом когда я начинаю делать поворот оружие, появляется ошибка(

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Что-то делаете не так.

    • @karpa2895
      @karpa2895 5 лет назад

      @@graphicaldesign2776А может это из-за shotDir, в прошлом ролике вы говорили про поворот персонажа, и изменяли код под переменой Flip, может это из-за этого?
      ruclips.net/video/gDVMkJkNq88/видео.html

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Ничего не могу сказать, я не вижу ошибки или полного "диагноза"

    • @karpa2895
      @karpa2895 5 лет назад

      @@graphicaldesign2776 Хорошо, а какие есть предположения, или где я мого посмотреть "диагноз"?

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Все что происходит в Unity, и есть диагноз...

  • @hummylisii8237
    @hummylisii8237 5 лет назад

    А можно сделать также только на телефоне.

  • @karpa2895
    @karpa2895 5 лет назад

    Выдаёт ошибку ещё на моменте когда оно должно вращаться
    Ошибка:
    NullReferenceException: Object reference not set to an instance of an object Weapon.Update
    Сам скрипт:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class Weapon : MonoBehaviour
    {
    public float offset;
    public GameObject ammo;
    public Transform shotDir;
    private float timeShot;
    public float startTime;
    // Start is called before the first frame update
    void Start()
    {

    }
    // Update is called once per frame
    void Update()
    {
    Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
    float rotateZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.Euler(0f, 0f, rotateZ + offset);
    if (timeShot

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Таак, с скриптом все впорядке. Проблема не в нем.
      он применен именно на оружие? го чуть больше информации о происходящем

    • @karpa2895
      @karpa2895 5 лет назад

      @@graphicaldesign2776 Ну так есть хоть какие-то предположения в чём дело?

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Этот скрин не передает никакой инфы. Что происходит с оружием, с префабом? со всем остальным

    • @karpa2895
      @karpa2895 5 лет назад

      @@graphicaldesign2776
      Спасибо, что стараетесь! Вот есть видео где я поподробней показал ситуацию
      yadi.sk/i/8mQQlu6wQ9lm7w

    • @graphicaldesign2776
      @graphicaldesign2776  5 лет назад

      Та вроде все впорядке, но по "диагнозу", он возмущается на точку стрельбы, тоесть то, что стоит на краю оружия. Пробуйте его удалить, поставить еще раз, назвать его shotDir для верности

  • @user-oj3uc1wz3z
    @user-oj3uc1wz3z 3 года назад

    не получилось

  • @modjaid3907
    @modjaid3907 4 года назад

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

  • @neibips2823
    @neibips2823 4 года назад

    А как поворачивать персонажа за курсором

    • @graphicaldesign2776
      @graphicaldesign2776  4 года назад

      Так же как и оружие, применить те же свойства.

    • @neibips2823
      @neibips2823 4 года назад

      @@graphicaldesign2776 спасибо за ответ, у меня возник еще вопрос. Как ограничить угол вращения?