В этом видео я покажу как сделать логику стрельбы по направлению клика мыши в Unity. / graphicaldesignua - мой патреон для поддержки) unity.com/ru - ссылка на Unity
Спасибо! Это отличнейший урок. Код элегантный и простой. В других уроках для того же результата ооочень часто такие простыни пишут что не специалисту вообще тяжело понять.
Несколько дней от тебя нет вестей, а потом за один день загружаешь 4 ролика. Ты в курсе что можно выставить дату публикации ролика. Можно загрузить ролик на канал, и поставить "опубликовать" через день, два, неделю. Тогда не будет пробелов, окон в публикации и ролики будут выходить раз в два дня а не 4 ролика в день один раз в неделю. Хотя возможно у тебя изначально есть какая то тактика и ты ее придерживаешься. P.s. ролики твои классные, ставлю лайки. Удачи!
Привет!)) Думал твой способ не работает, оказалось это я балбес перспективный режим включил на камере вместо ортографического!!! Все заработало, твой код как всегда элегантен! Здоровья тебе)))
Сделай пожалуйста урок по прыжкам. Что-бы высота прыжка зависела от долготы зажатия клавиши (как в Hollow Knight). Я искал подобное, но не смог найти подробный урок с хорошими объяснениями.
День добрый, уроки и в правду очень хорошие. Не могли бы вы показать, как реализовать направление стрельбы для джойстика, по типу того, как это было реализовано в шутерах на ту же самую Сегу. Был бы очень признателен за подобный урок (=
Спасибо за урок, подписка с меня однозначно👍 Вопрос такой: а как сделать чтобы стрела/ракета через летела по траектории ? Сделай,пожалуйста, видео или на комент ответь )
Прекрасные уроки, использую их для реализации движения своего персонажа. Возникла следующая ситуация, есть анимация спрайтами, в которой персонаж прорисован уже с оружием (без возможности отделения оружия), в связи с этим вопрос, возможно проигрывать анимацию в зависимости от положения мышки (или объекта shotDir как в этом уроке)? Попробую объяснить сущность вопроса более внятно. Существует 10 кадров персонажа в котором положение его руки и оружия меняется от +60 градусов до -45 градусов по оси Z, возможно ли, проигрывать анимацию по одному кадру на каждые 10 градусов движения объекта shotDir? Я понимаю что проще сделать костную анимацию рук, но все же...
отличный урок но у меня почему-то пуля не отображается на камере хотя на сцене она появляется, я даже делал новые префабы. Что делать? Помоги пожалуйста
Класс. Планируется и дальше грейдить этого парня ? Я писал, что хотелось бы взаимодействие статы оппа и предметов. Со след месяца перейду в статс "Выпускник" на Патреоне - обещаю ))
'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?) что делать?
Классное видео. А как ограничить зону активности мышки? Ну, например у меня кнопки управления персонажем внизу и когда я на них кликаю, то оружие поворачивается в сторону кнопки. Нажимаю идти "вправо" и арбалет целится на кнопку ибо я по ней кликнул.
После строки float rotateZ, можно добавить: rotateZ = Mathf.Clamp(rotateZ, -30f, 30f); Объект будет следить за мышью в диапазоне 60 градусов. Но на Flip он не реагирует, так и остаётся повернутым в сторону.
@@graphicaldesign2776 Хай это я ток сдругого акка. Я не очень понял,можешь подскозать что нужно подставить вместо Input.mousePosition чтоб работало на андроид??????????????? P.S "уже надежда пропала"
@@thekaka1243 честно говоря,есть специальный асет под телефоны называется "Standard Assets" там чего только нет под мобильники и кнопки,и джойстики и т.д .Вот его и можешь использовать
Здравствуйте, гайд помог, но есть вопросы. 1. Как сделать, чтобы при столкновении с enemy enemyполучал урон 2. Я сделал код, без поворота мышью, т к мне так нужно, но пуля летит только в право, как исправить?
Немного странные вопросы, так как это вообще отдельные скрипты надо писать. 1) Написать скрипт с вычитанием жизней при столкновении. 2) Дописать в скрипте поворот на 180 градусов.
А как сделать чтобы враг, который стоит на месте стрелял в одно и тоже место прямо перед собой в короткий промежуток, и врага который целится в тебя и стреляет
@@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); } } я не заметил каких либо ошибок
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); } } Шо делать
Привет, знаю что ты меня не заметишь, но хочу попросить у кого - нибудь. Подскажите, пжста, как сделать так, чтобы я мог вращать оружие только до определённого угла?((
Это очень абстрактный вопрос. И никто конкретно на него не ответит. Потому что основной ответ выглядит как "поставить ограничения поворота". Как минимум начни, а там уже появятся более конкретные вопросы
@@graphicaldesign2776А может это из-за shotDir, в прошлом ролике вы говорили про поворот персонажа, и изменяли код под переменой Flip, может это из-за этого? ruclips.net/video/gDVMkJkNq88/видео.html
Выдаёт ошибку ещё на моменте когда оно должно вращаться Ошибка: 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
Та вроде все впорядке, но по "диагнозу", он возмущается на точку стрельбы, тоесть то, что стоит на краю оружия. Пробуйте его удалить, поставить еще раз, назвать его shotDir для верности
класс. У тебя очень годные уроки, просто ОЧЕНЬ. Вот честно, я гуглил вопросы по Unity C# и почти на каждый 3-й запрос у тебя есть видео.
+
+++
+
За скорость выхода контента - мое почтение ))) приятно видеть такую активность.
Как раз задавался вопросом, как сделать такую стрельбу, а тут видео. Спасибо)
Это очень хороший гайд. Не загружен лишним, понятный и не очень долгий.
Спасибо! Это отличнейший урок. Код элегантный и простой. В других уроках для того же результата ооочень часто такие простыни пишут что не специалисту вообще тяжело понять.
Ты делаешь отличные гайди, благодаря тебе выиграл хакатон
Несколько дней от тебя нет вестей, а потом за один день загружаешь 4 ролика. Ты в курсе что можно выставить дату публикации ролика. Можно загрузить ролик на канал, и поставить "опубликовать" через день, два, неделю. Тогда не будет пробелов, окон в публикации и ролики будут выходить раз в два дня а не 4 ролика в день один раз в неделю. Хотя возможно у тебя изначально есть какая то тактика и ты ее придерживаешься.
P.s. ролики твои классные, ставлю лайки. Удачи!
Ролики я обычно выкладываю по сто процентной готовности. Этой ночью я поставил ренедрится все 4 смонтаженных видоса. Они есть, их и выкладываю)
ГДЕ ТЫ БЫЛ РАНЬШЕ? очень годно спасибо!
я даже надеяться не мог что ты выложишь анонс уроков на эту тему на следующий день после моего вопроса! Спасибо тебе огромное!
Спасибо! Урок очень помог! Всё работает! Удачи тебе в продвижении канала, ты заслуживаешь большего.
ЕДИНСТВЕННЫЙ ПОНЯТНЫЙ урок на эту тему
Очень доволен уроками, спасибо!
Привет!)) Думал твой способ не работает, оказалось это я балбес перспективный режим включил на камере вместо ортографического!!! Все заработало, твой код как всегда элегантен! Здоровья тебе)))
Спасибо ты единственный кто мне помог искал 3-дня подписался лайк поставил хотелось бы ещё знать как делать автомат
Сделай пожалуйста урок по прыжкам. Что-бы высота прыжка зависела от долготы зажатия клавиши (как в Hollow Knight). Я искал подобное, но не смог найти подробный урок с хорошими объяснениями.
Благодарю за видео. как раз об этом спрашивал)
Очень хотелось бы урок от тебя по подбору оружия и выбросу его.
Спасибо большое я этого ждал спасибо!!!!
День добрый, уроки и в правду очень хорошие. Не могли бы вы показать, как реализовать направление стрельбы для джойстика, по типу того, как это было реализовано в шутерах на ту же самую Сегу. Был бы очень признателен за подобный урок (=
Интернет тебе в помощь
Спасибо 🤛
Ты крут!!!
Спасибо за урок, подписка с меня однозначно👍
Вопрос такой: а как сделать чтобы стрела/ракета через летела по траектории ? Сделай,пожалуйста, видео или на комент ответь )
Спасибо за помощь!)
спасибо помогло
Можешь сделать поворот оружия по направлею джойстика(для мобильных устройств)
Прекрасные уроки, использую их для реализации движения своего персонажа.
Возникла следующая ситуация, есть анимация спрайтами, в которой персонаж прорисован уже с оружием (без возможности отделения оружия), в связи с этим вопрос, возможно проигрывать анимацию в зависимости от положения мышки (или объекта shotDir как в этом уроке)?
Попробую объяснить сущность вопроса более внятно. Существует 10 кадров персонажа в котором положение его руки и оружия меняется от +60 градусов до -45 градусов по оси Z, возможно ли, проигрывать анимацию по одному кадру на каждые 10 градусов движения объекта shotDir? Я понимаю что проще сделать костную анимацию рук, но все же...
Очень круто
Хотелось бы на телефоне чтобы по нажатию персонаж стрелял туда.
отличный урок но у меня почему-то пуля не отображается на камере хотя на сцене она появляется, я даже делал новые префабы. Что делать? Помоги пожалуйста
а теперь попробуй использовать clamp для ограничения угла орудия :) если игрок повёрнут в правую и в левую сторону :)
Класс. Планируется и дальше грейдить этого парня ? Я писал, что хотелось бы взаимодействие статы оппа и предметов. Со след месяца перейду в статс "Выпускник" на Патреоне - обещаю ))
Ес) за ближайшие пару дней уже выйдет первый урок с реализацией огнестрельного оружия.
Круто
Привет! А как сделать что бы при стрельбе (скажем автомата), пули летели с небольшим отклонением по оси X (от -0,3 до 0,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?) что делать?
Подскажите как сделать, чтобы поворот оружия не превышал 90 градусов вверх и вниз?
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);
@@rybinded Ахахах, год спустя ответили. Спасибо ))
@@never4441 Ну, когда прочитал тогда и ответил))) А вдруг тебе еще нужно... Или кому-то другому...
10:00 быстрее будет вместо Invoke прописать Destroy(gameObject, destroyTime);
Если что, я не пытаюсь придраться к автору, мне нравятся его видео
Это и не выглядит как придирка) Все отлично) Вполне адекватное мнение)
как этот кусок кода работает?
@@user-dc4qu1zi4c Destroy(уничтожаемый объект, задержка перед уничтожением(тип переменной должен быть флоат float))
@@stmihan_ посябки
Классное видео. А как ограничить зону активности мышки? Ну, например у меня кнопки управления персонажем внизу и когда я на них кликаю, то оружие поворачивается в сторону кнопки. Нажимаю идти "вправо" и арбалет целится на кнопку ибо я по ней кликнул.
Спасибо.
Как можно реализовать "Flip" персонажа и оружия при помощи курсора и ограничение поворота за курсором (например не 360, а 100 и -100)?
После строки float rotateZ, можно добавить:
rotateZ = Mathf.Clamp(rotateZ, -30f, 30f);
Объект будет следить за мышью в диапазоне 60 градусов.
Но на Flip он не реагирует, так и остаётся повернутым в сторону.
@@igrochainik спасибо
@@igrochainik Спасибо, но можете подсказать как сделать чтобы при кокретном угле поворота оружия, персонаж поворачивался?
будет работать при нажатии на экране смартфона?
T.F_FEDOS если написать под смартфон, то будет
@@graphicaldesign2776 Хай это я ток сдругого акка. Я не очень понял,можешь подскозать что нужно подставить вместо Input.mousePosition чтоб работало на андроид??????????????? P.S "уже надежда пропала"
@@thekaka1243 честно говоря,есть специальный асет под телефоны называется "Standard Assets" там чего только нет под мобильники и кнопки,и джойстики и т.д .Вот его и можешь использовать
6:38 извините, пожалуйста подскажите, как скрыть объект: "стрела"?
7:39 как это добавить под кнопку?
если под джостик то вот
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);
}
коды для мобильных и пк игр чем либо отличаются?
Я правильно понимаю, что пока летит стрела, поворот арбалета не возможен?
Здравствуйте, гайд помог, но есть вопросы.
1. Как сделать, чтобы при столкновении с enemy enemyполучал урон
2. Я сделал код, без поворота мышью, т к мне так нужно, но пуля летит только в право, как исправить?
Немного странные вопросы, так как это вообще отдельные скрипты надо писать.
1) Написать скрипт с вычитанием жизней при столкновении.
2) Дописать в скрипте поворот на 180 градусов.
А как сделать чтобы враг, который стоит на месте стрелял в одно и тоже место прямо перед собой в короткий промежуток, и врага который целится в тебя и стреляет
Помоги, у меня почему-то один снаряд выпускается и при повторном нажатии мышки ничего не происходит.
Делал все идентично
счетчик скорее всего не обновляешь после выстрела
@@dronsan-unity7302 а в каком это блоке сори я новичок
@@allbyk код надо видеть, чет уже не помню, что там)
Привет, спасибо за урок. А как сделать, чтобы пуля пропадала при прикосновении к колайдеру?
Добавить ей свойство Destroy
Camera.main не имеет такое значение и я не знаю что тогда делать потскажи пж
можно скрипт пжж, просто когда я начинаю делать стрельбу то меня посылают в бан, хотя я все правельно списал
Нужно трудиться ,чтобы что-то получить
"Camera" не содержит определение для "main"
Что делать? Пожалуйста подскажите
Toxic Soul проверить скрипт на ошибки
@@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);
}
}
я не заметил каких либо ошибок
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);
}
}
Шо делать
Исправил?
Привет, знаю что ты меня не заметишь, но хочу попросить у кого - нибудь. Подскажите, пжста, как сделать так, чтобы я мог вращать оружие только до определённого угла?((
Это очень абстрактный вопрос. И никто конкретно на него не ответит. Потому что основной ответ выглядит как "поставить ограничения поворота". Как минимум начни, а там уже появятся более конкретные вопросы
Как перевернуть оружие, когда персонаж смотрит влево?
Я продемонстрировал все в этой серии уроков.
@@graphicaldesign2776 Таймкод?
Да, серия уроков по глобальной настройки оружия
Как ограничить вращение арбалета?
Добавить дополнительное условие
Прикол, в том что сама стрельба по прошлым роликам (у вас) у меня всё работает, но при этом когда я начинаю делать поворот оружие, появляется ошибка(
Что-то делаете не так.
@@graphicaldesign2776А может это из-за shotDir, в прошлом ролике вы говорили про поворот персонажа, и изменяли код под переменой Flip, может это из-за этого?
ruclips.net/video/gDVMkJkNq88/видео.html
Ничего не могу сказать, я не вижу ошибки или полного "диагноза"
@@graphicaldesign2776 Хорошо, а какие есть предположения, или где я мого посмотреть "диагноз"?
Все что происходит в Unity, и есть диагноз...
А можно сделать также только на телефоне.
Чего нет, сделайте.
Выдаёт ошибку ещё на моменте когда оно должно вращаться
Ошибка:
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
Спасибо, что стараетесь! Вот есть видео где я поподробней показал ситуацию
yadi.sk/i/8mQQlu6wQ9lm7w
Та вроде все впорядке, но по "диагнозу", он возмущается на точку стрельбы, тоесть то, что стоит на краю оружия. Пробуйте его удалить, поставить еще раз, назвать его shotDir для верности
не получилось
голос капец конечно, чел если ты специально такой делаешь то завязывай, тебя и взрослые люди тоже смотрят
А как поворачивать персонажа за курсором
Так же как и оружие, применить те же свойства.
@@graphicaldesign2776 спасибо за ответ, у меня возник еще вопрос. Как ограничить угол вращения?