Спасибо! В школе физику не учу. Так как темы мне не нравятся. Но это видео меня шокировало. Потому что вы все просто и детально обясняете. Понятно и интересно. Спасиб большое ещё раз! Надеюсь в дальнейшем буду учить в школе физику с интересом
Кое-что приметил! Нужно ограничить угол, чтобы нельзя было использовать 90 градусов, так как это выдаст баг из-за деления на ноль, значит можно добавить проверку на 90 градусов и изменять его например на 91
Лучше использовать статическую переменную скорости снаряда, а угол высчитывать, как это сделано в реальном мире. Например танк. Чтоб попасть, там высчитывают угол выстрела, а скорость снаряда всегда одинаковая.
Честно, это очень-очень сложно😅. Я сам пробовал, суть в том, что в подобного рода задаче, где парабола проходит через 2 точки, возможно 2 варианта угла наклона(логично, настильная и не очень траектория). Даже если так, то придется кодом решать тригонометрические уравнения совершенно разнородного вида, одним словом, ужас)
кстати чтобы перевернулась пуля при стрельбе из ригидбоди на ,его месте создаем обьект пустышку и ждем немного пока пуля не отлетит , потом смотрим с пустышки на пулю и передаем поворот пустышки на пулю. или можно соеденить несколько частей пули с помощью fixedJoint и передаем разные веса основе пули и его наконечнику,должно получится главное не соеденять фиксед джойнтом родителя с его дочерю , знаю инцест дело семейное ,но все же не стоит. public GameObject emptyObj; //преваб обьект пустышки public GameObject cloneEmptyObj; //клон создаваемого обьекта для контроля им public float timeInstance; //время , создание обьектов и управление им public bool explosionForceAmmon=true; //взрыв силы оружья public float force=100f//сила импульса для полета public void Start() { cloneEmptyObj=Instateate(emptyObj, gameObject.transform.position,gameObject.transform.rotation) } public void Update() { explosionForceAmmon+=Time.deltaTime; if(explosionForceAmmon==true) { if(timeInstance
Илья, а что делать если нужно найти все углы и скорости удовлетворяющие пересечению с точкой? Не циклами пробегать же. Можете сделать уроки по стрельбе с опережением (куда стрелять, если известна скорость снаряда, а так же вектор цели и расстояние до неё в начальной точке) и урок объяснение quaternion'ов??
А зачем мы делаем вычитание векторов в самом начале? можно же quaternion.LookRotation просто сделать (target.transform.position.x, 0, target.transform.position.z , Vector3.up) вроде же и так работает, зачем нам находить направление если и так знаем таргет
Было бы замечательно,если бы вывел формулу изменения угла пушки при известной начальной скорости пули.Хотя,в принципе,это и сам как нибудь выведу. А вот вопрос в другом-как нарисовать сектор обстрела?Есть корабль с пушкой у которой есть определенный сектор ,куда можно стрелять не поворачивая сам корабль.То есть нужно нарисовать круг вокруг корабля и закрасить только сектор обстрела.КАК? Если у кого есть идеи,подскажите хотя бы как закрасить часть круга.Просто часть круга.Есть такая возможность в Unity? Автор, вообще супер объясняешь.Я,как совсем дно-программист тебя вполне понимаю.СПАСИБО.
@@VonBreuss ок,спасибо! Как понимаю,вы шарите в юнити. У меня сейчас другая проблема нарисовалась.Может советом поможете? Есть скрипт управления движения камерой вокруг объекта. При Input.GetAxis("Mouse X") камера движется вокруг объекта в горизонтальной плоскости. При Input.GetAxis("Mouse Y") соот ветственно в вертикальной с определенными ограничениями. Так вот вопрос:возможно ли движение при Input.GetAxis("Mouse X") оставить прежним а вот при Input.GetAxis("Mouse Y") камера вращалась бы не вокруг ОБЪЕКТА в вертикальной плоскости а относительно СВОЕЙ оси right? То есть водить мышей вправо-влево - двигаться вокруг объекта ,а водить вверх-вниз - смотреть выше-ниже объекта. Возможно ли такое?
@@АндрейПрокофьев-е7д Проще скачать готовую камеру из AssetStore. Либо поищи уроки по запросу "летающая камера" или "fly camera". Если не будет нужной - хотя бы поймешь суть и копируешь нужные строчки. В самом трудном варианте придется учиться пользоваться кватернионами - Quaternion. Это благодаря им камера вращается либо вокруг объекта, либо вокруг какой-либо оси.
создаешь публичный метод типа "void" в нее бросаешь функционал стрельбы (без условия клика мышью), создаешь UI кнопку, добавляешь ей событие в "OnClick", там же указываешь объект на котором висит скрипт, в поле "No function" выбираешь свой скрипт, а потом выбираешь свой метод. Вуаля, все работает!
Спасибо за урок!! ) Не знаю почему , но у меня немного пуля перелетала врага, мне пришло переменную v ещё отнять - 1f , и после этого начал попадать цель. По-любому где-то сделал ошибку, но по я её не нашел
3:46 Т.к. не оговорен частный случай, значит говоришь в общем случае. В общем случае это не правда. Частный случай, когда дальность при угле 45 градусов максимальна это условие что точка падения и точка бросания находятся на одной высоте. Если высоты отличаются, то максимальная дальность будет точно при другом угле. Это и из жизни очевидно. Если кидаем что-то на балкон, то становимся близко и кидаем вверх. Если кидаем куда-то вниз, то бросаем почти с нулевым углом к горизонту.
Прошу прощения, а как узнать не скорость а именно угол выстрела, зная всё остальное? Я понимаю, что для одного и того же случая подходит всегда 2 угла: прямой наводкой и навесом/артиллерийский, так сказать. Разумеется, есть и третий случай, когда невозможно дострелить из-за малой начальной скорости снаряда. Я раньше пытался решить такую задачу, но кроме банального метода с многократной подстановкой ничего в голову не приходило. Получалось недостаточно точно, да и хотелось более оптимизированное решение. Просто, как по мне, это гораздо более необходимая в жизни задачка, ибо чаще снаряд имеет конкретную скорость и нужно узнать именно угол для наведения.
Ага, и правда такая задача более актуальна. Ну так в двух словах не скажу. Но я делал это однажды примерно так же как в этом видео. Просто из формул другое надо выразить
@@EccentricGames пробовал, но не получалось. Ибо там решения 2 для угла альфа, а не одно. Не помню, как это в математике называется уже и как выглядело по итогу. Вот только решать такое я не умею, хотя и математик из меня меньше среднего. Ну а так то все равно спасибо за ответ.
Спасибо, очень полезный урок. Приятно слушать, всё подробно описал. Обычно в расчёте a*t^2/2 для y пишут с минусом(вектор g вниз) подскажите, пожалуйста, почему минус здесь не пишем?
@@Rayvenor Воздух оказывает влияние на аэродинамическое сопротивление или коэффициент Сх - формы "головы" пули (снаряда). Масса связана с силой тяготения и инерцией, ну и с перегрузкой.
@@qazwsxqaz3163 в самом начале видео сказали, что воздухом пренебрегаем. На ускорение свободного падения масса не влияет, а траекторию определяет именно ускорение. При свободном падении веса нет, нет и перегрузки.
Здраствуйте, не подскажите как увеличить скорость пули? пытался сам, не получается. Могу через гравитацию, но это как то не то, менять общую гравитацию до - 100 нарпимер.
Так то да Но всё таки нужно изменять угол, а не скорость снаряда. То есть вывести из формулы уже не скорость, а угол. Я не математик, выводить так вообще у меня никогда нормально не получалось, так что тут я не подскажу. Сам ищу
Надеюсь, я тоже когда-нибудь смогу так просто флексить физикой и математикой, а пока буду просто смотреть ваши уроки и узнавать новое)
Автор просто гений! Я повторил всё и был очень сильно удивлён тому что в результате получилось.
Математика творит чудеса)
Господи почему я нашел это видео только сейчас??? Оно гениально!!! Мужик, спасибо тебе огромное человеческое:)))
Очень классно, мне как бывшему физику понравились математические выписки)
Уф, хорошо что я сейчас в 11 классе на физмате и прекрасно всё понимаю что ты делаешь!
Браааааатишка, научи понимать :DDD
@@ЛевТроцкий-ъ4щ Миня тожи я тожи 11 класс и нифига не панимаю но очень интересна!
@@Vjuh_and_kx жиза)))
Спасибо! В школе физику не учу. Так как темы мне не нравятся. Но это видео меня шокировало. Потому что вы все просто и детально обясняете. Понятно и интересно. Спасиб большое ещё раз! Надеюсь в дальнейшем буду учить в школе физику с интересом
На сколько ты гениальный, я бы умер пока сам думал
Кое-что приметил! Нужно ограничить угол, чтобы нельзя было использовать 90 градусов, так как это выдаст баг из-за деления на ноль, значит можно добавить проверку на 90 градусов и изменять его например на 91
Все круто, продолжайте, очень полезно
Не зря физику 2 года изучал. И тригонометрия тоже понадобилась
Потрясающе!
Если делать стрельбу, то только так!) Классный урок
Лучше использовать статическую переменную скорости снаряда, а угол высчитывать, как это сделано в реальном мире. Например танк. Чтоб попасть, там высчитывают угол выстрела, а скорость снаряда всегда одинаковая.
Честно, это очень-очень сложно😅. Я сам пробовал, суть в том, что в подобного рода задаче, где парабола проходит через 2 точки, возможно 2 варианта угла наклона(логично, настильная и не очень траектория). Даже если так, то придется кодом решать тригонометрические уравнения совершенно разнородного вида, одним словом, ужас)
Хорошее пособие по написанию чита для Раста.))
кстати чтобы перевернулась пуля при стрельбе из ригидбоди на ,его месте создаем обьект пустышку и ждем немного пока пуля не отлетит , потом смотрим с пустышки на пулю и передаем поворот пустышки на пулю.
или можно соеденить несколько частей пули с помощью fixedJoint и передаем разные веса основе пули и его наконечнику,должно получится главное не соеденять фиксед джойнтом родителя с его дочерю , знаю инцест дело семейное ,но все же не стоит.
public GameObject emptyObj; //преваб обьект пустышки
public GameObject cloneEmptyObj; //клон создаваемого обьекта для контроля им
public float timeInstance; //время , создание обьектов и управление им
public bool explosionForceAmmon=true; //взрыв силы оружья
public float force=100f//сила импульса для полета
public void Start()
{
cloneEmptyObj=Instateate(emptyObj, gameObject.transform.position,gameObject.transform.rotation)
}
public void Update()
{
explosionForceAmmon+=Time.deltaTime;
if(explosionForceAmmon==true)
{
if(timeInstance
Вот нафига это всё городить?) Просто делаешь пуле одну строчку: кватернион.lookTo(вектор скорости);
Действительно, потресяюще!
Илья, а что делать если нужно найти все углы и скорости удовлетворяющие пересечению с точкой? Не циклами пробегать же.
Можете сделать уроки по стрельбе с опережением (куда стрелять, если известна скорость снаряда, а так же вектор цели и расстояние до неё в начальной точке)
и урок объяснение quaternion'ов??
Не могу понять, как сделать так с осями объекта? 10:40
Понял. Локальные координаты слева вверху
А зачем мы делаем вычитание векторов в самом начале? можно же quaternion.LookRotation просто сделать (target.transform.position.x, 0, target.transform.position.z , Vector3.up) вроде же и так работает, зачем нам находить направление если и так знаем таргет
Ты меня спас
Просто Гений
Было бы замечательно,если бы вывел формулу изменения угла пушки при известной начальной скорости пули.Хотя,в принципе,это и сам как нибудь выведу.
А вот вопрос в другом-как нарисовать сектор обстрела?Есть корабль с пушкой у которой есть определенный сектор ,куда можно стрелять не поворачивая сам корабль.То есть нужно нарисовать круг вокруг корабля и закрасить только сектор обстрела.КАК?
Если у кого есть идеи,подскажите хотя бы как закрасить часть круга.Просто часть круга.Есть такая возможность в Unity?
Автор, вообще супер объясняешь.Я,как совсем дно-программист тебя вполне понимаю.СПАСИБО.
ruclips.net/video/yR2F4gmF8_4/видео.html Если урок не годится погугли ещё по запросу Clamping Rotation
@@VonBreuss ок,спасибо!
Как понимаю,вы шарите в юнити.
У меня сейчас другая проблема нарисовалась.Может советом поможете?
Есть скрипт управления движения камерой вокруг объекта. При Input.GetAxis("Mouse X") камера движется вокруг объекта в горизонтальной плоскости. При Input.GetAxis("Mouse Y") соот ветственно в вертикальной с определенными ограничениями.
Так вот вопрос:возможно ли движение при Input.GetAxis("Mouse X") оставить прежним а вот при Input.GetAxis("Mouse Y") камера вращалась бы не вокруг ОБЪЕКТА в вертикальной плоскости а относительно СВОЕЙ оси right?
То есть водить мышей вправо-влево - двигаться вокруг объекта ,а водить вверх-вниз - смотреть выше-ниже объекта.
Возможно ли такое?
@@АндрейПрокофьев-е7д Проще скачать готовую камеру из AssetStore. Либо поищи уроки по запросу "летающая камера" или "fly camera". Если не будет нужной - хотя бы поймешь суть и копируешь нужные строчки. В самом трудном варианте придется учиться пользоваться кватернионами - Quaternion. Это благодаря им камера вращается либо вокруг объекта, либо вокруг какой-либо оси.
21:50 поскажите а как сделать это через button?Ну типо если я нажимают на button то стрелять
создаешь публичный метод типа "void" в нее бросаешь функционал стрельбы (без условия клика мышью), создаешь UI кнопку, добавляешь ей событие в "OnClick", там же указываешь объект на котором висит скрипт, в поле "No function" выбираешь свой скрипт, а потом выбираешь свой метод. Вуаля, все работает!
Спасибо за урок!! ) Не знаю почему , но у меня немного пуля перелетала врага, мне пришло переменную v ещё отнять - 1f , и после этого начал попадать цель. По-любому где-то сделал ошибку, но по я её не нашел
Я новичок в unity, но маюсь с переводом этой системы в 2D уже который день. Можешь подсказать что изменять нужно, а то у меня уже идею закончились...
3:46 Т.к. не оговорен частный случай, значит говоришь в общем случае. В общем случае это не правда.
Частный случай, когда дальность при угле 45 градусов максимальна это условие что точка падения и точка бросания находятся на одной высоте. Если высоты отличаются, то максимальная дальность будет точно при другом угле. Это и из жизни очевидно. Если кидаем что-то на балкон, то становимся близко и кидаем вверх. Если кидаем куда-то вниз, то бросаем почти с нулевым углом к горизонту.
КЛАСС
Прошу прощения, а как узнать не скорость а именно угол выстрела, зная всё остальное?
Я понимаю, что для одного и того же случая подходит всегда 2 угла: прямой наводкой и навесом/артиллерийский, так сказать.
Разумеется, есть и третий случай, когда невозможно дострелить из-за малой начальной скорости снаряда.
Я раньше пытался решить такую задачу, но кроме банального метода с многократной подстановкой ничего в голову не приходило.
Получалось недостаточно точно, да и хотелось более оптимизированное решение.
Просто, как по мне, это гораздо более необходимая в жизни задачка, ибо чаще снаряд имеет конкретную скорость и нужно узнать именно угол для наведения.
Ага, и правда такая задача более актуальна. Ну так в двух словах не скажу. Но я делал это однажды примерно так же как в этом видео. Просто из формул другое надо выразить
@@EccentricGames пробовал, но не получалось. Ибо там решения 2 для угла альфа, а не одно. Не помню, как это в математике называется уже и как выглядело по итогу. Вот только решать такое я не умею, хотя и математик из меня меньше среднего.
Ну а так то все равно спасибо за ответ.
При заданной скорости должно быть одно решение. Или нет решения если дискриминант < 0
Спасибо, очень полезный урок. Приятно слушать, всё подробно описал. Обычно в расчёте a*t^2/2 для y пишут с минусом(вектор g вниз) подскажите, пожалуйста, почему минус здесь не пишем?
Возможно потому, что берется предзаданное значение, где оно, вероятно, уже с нужным знаком.
Желательно добавить расчеты с учетом массы пули (снаряда), а также в случае с трассирующей пулей, учет изменения массы в полете.
Мы же тут игры делаем просто, а не полёт настоящих пуль предсказываем))
тогда уж сопротивление воздуха а не масса
Если воздухом пренебрегаем, то от массы не зависит.
@@Rayvenor
Воздух оказывает влияние на аэродинамическое сопротивление или коэффициент Сх - формы "головы" пули (снаряда). Масса связана с силой тяготения и инерцией, ну и с перегрузкой.
@@qazwsxqaz3163 в самом начале видео сказали, что воздухом пренебрегаем. На ускорение свободного падения масса не влияет, а траекторию определяет именно ускорение. При свободном падении веса нет, нет и перегрузки.
Здраствуйте, не подскажите как увеличить скорость пули? пытался сам, не получается. Могу через гравитацию, но это как то не то, менять общую гравитацию до - 100 нарпимер.
Может уже поздно, но получилось ли у вас изменить скорость пули не меняя гравитацию?
Уменьшай угол, тогда скорость увеличится.
@@Rayvenor неощутимая разница
@@rgnaros Не поздно, еще не разобрал)
Угол менять, другого выбора нету.
С этим кодом надо ставить около 80-89 градусов для значительного увеличения скорости
А конкретное значение t ?
Вот скажи, как рассчитать с скорость движения корабля от одной планеты до другой. прям чтоб с ускорением и торможением.
F = ma
Таким образом можно же миномёт сделать?
Так то да
Но всё таки нужно изменять угол, а не скорость снаряда. То есть вывести из формулы уже не скорость, а угол. Я не математик, выводить так вообще у меня никогда нормально не получалось, так что тут я не подскажу. Сам ищу
Good Job! ^_^
ПОЧЕМУ У МЕНЯ ШУТЕР ПО Rotation ПЕРЕХОДИТ С -90 В 0
Почувствовала себя тупой, потому что даже обычный горизонтальный бросок не смогла реализовать😢
Сижу и ловлю себя на мысли,что ничего не понимаю)) А просто скопировать и вставить не хочется...
чего-то у меня не работает но я передаю импульс
Нужно не скорость пули менять, а положение орудия.
Да, так будет более логично, теперь осталось выразить не скорость, а угол вылета
@@Hello_worl станьте, пожалуйста, если найдёте :
Ответь плиз
Видосы крутые, но ток поменьше бы кринжа
Мне 31. Уже не так просто видеть границу кринжа
@@EccentricGames даже в 32 можно это выучить, брат, это как программирование))
@@biggayal6056 боюсь придется посмотреть слишком много юмористических шоу
Максимальная дальность полета пули НИКОГДА не будет при угле возвышения 45° не читайте и не смотрите баллистику в изложении случайных людей
🤢🤮
А при каком угле тогда достигается максимальная дальность?
Оба не правы.
НОЛЬ обьяснений. НОЛЬ доходчивости.
Ценность видео - просто перемотай в конец и перепиши, подставив свой префаб и настройки
Ого, ничего себе, оказывается, что нужно знать матем и физику хотя бы на уровне школьной программы!) Иначе зачем в геймдев полезли?
Math.Rad()