34:05 *Автор меняет значение во время запущенного приложение, после чего его перезапускает, и значение возвращается к предыдущему.* 34:20 О, а вот так мне нравится. ))))
Для понимания "как можно реализовать" урок хороший, а вот для игры вариант не очень. В прыжке можно менять траекторию, как джедай какой то, нет проверки на вставание если ты под препятствием, там начинаются приличные глюки, не озвучена реализация подъемов по отвесным лесенкам, спуск или перемещение по потолочным балкам, отсутствует реализация подкатов. )) Загнул я, да )) Но как говориться "взялся за гуж не говори что не дюж". С меня лайк и подписка. Буду следить...
Не используйте чаптерконтроллер в Unity, если вам нужно адекватное взаимодействие с физическими объектами. Он порой генерит ошибки, которых невозможно избежать. Например, сделал себе контроллер дверей на физике, чтобы всё плавно, открывались от толчка плеером, или по F, чтобы триггер блокировки, для обычных дверей, сдвижных, ящиков, и т.д. Ну и при открывании таких дверей упираешься в них плеером, и получаются адовы глюки...
Автор, следовало бы конечно указать что этот "урок" адаптация аналогичного с канала Brackeys. Но за старание и для не понимающих на иностранном конечно лайк.
@@KorgiBit на 8:14 можно узнать откуда поле input? когда я пишу у себя в скрипте input.getaxis он вообще не выделяет input другим цветом и в списке автозаполнения слов тоже не показывает такое слово...
Чтобы изменить скорость игрока при приседании нужно найти где приседание в if написать speed = (скорость при приседании)f; а в else написать speed = (обычная скорость игрока)f; и теперь вы будете ходить в присяде с другой скоростью.
Что делать с застреванием коллайдера в стенах? Это заметно даже на видео и мешает нормально перепрыгивать предметы, если сделать на персонаже несколько коллайдеров с разными значениями трения, то они мешают отправлять raycast, то-есть луч врезается в коллайдер самого персонажа и останавливается.
Попробуй в CharacterContorller настроить skinsize(я помню как точно называется но что то с кожей) это позволяет персонажу игнорировать проникновение в коллайдер если если коллайдер вошел с персонажа на расстояние ниже skinSize
Мне кажется , или же если просчитывать каждый кадр на какую позицию в координатах игрок ушёл , то это будет сильно нагружать игруху и понижать производительность , а так за урок спасибо , некоторые детали возьму для себя)
О_о А как ты собираешься по иному реализовывать FPS контроллер ? В том смысле что Frame per second прямо в название содержит принцип. Да и плюс, большинство игр работает по такому принципу. Даже не так. Все игры просчитывают действия игрока каждый кадр!
@@klei4173 не писать это прям сразу в Update , а писать как отдельной функцией , чтобы была ниже нагрузка в будущем , крч оптимизировать эту хуйню (п.с , разница там есть , всё проверено)
@@gh0stcwtactiksnew_lf340 а в чем разница? Если у тебя есть функция, вызываемая каждый кадр? Но соглашусь, что с тз оптимизации, работы с кодом и его читабельности нужно писать отдельные методы. Иначе целая рота чертей ноги сломит..
"RigidBody" - ну да, ну да пошел я на #ер😅 По сабжу - код рабочий, но так реализовывать обозначенные задачи я крайне не рекомендую... если сами себе не поломаете пальцы в процессе, то другие разрабы точно.
Все, кто пишут, что это говно-код: его фишка в том, что его дегко понять даже такому чайнику, как я. А если вы его поняли, то вы можете его доработать. Я, например, сделал ограничение по вращению камеры по вертикали, улучшил прыжок, и убрал возможность "ходить" в время прыжка. И это при том, что опыт разработки в Unity у меня - дырка в бублике. ХЗ, что бы я делал без этого видоса...
Спасибо вам огромное! все очень хорошо и понятно. Смотрел много роликов как сделать управление мышкой, но иногда управление не работало вообще, либо был баг, позволяющий проворачивать голову вверх и вниз бесконечно. После вашего видео у меня получилось сделать своего персонажа.
Здравствуйте ваш урок очень хороший и понятливый сделал всё кроме поворота головы с ней появилась проблема скрипт написан ошибок нет но камера с туловищем вращаться не хочет. Можете сказать пожалуйста в чем примерно может быть проблема?
Скоро новый контент) Единственного правильного подхода к написанию кода нет. Но есть несколько критериев: читаемость, скорость работы, поддерживаемость.
Очень круто! А подскажи формулу сохранении энергии, простым языком когда ты в воздухе отпускаешь клавиши надо чтобы перс продолжал лететь. Как это сделать?
Возможно, стоит проверить правильность написания команд, если остальные подсказки есть. Если есть ощущение, что одному не получается осилить, у нас есть курс для начинающих - подробнее в дискорд BorislavSin#6450
Привет у меня почему-то появилась такая проблема что при нажатии пробела персонаж подпрыгивает, но если во время полета нажать еще раз пробел то он подпрыгнет выше и так пока жмем пробел. Как сделать чтобы персонаж прыгал один раз ?
15:39 передаёт он курсор лок мод. Ты бы хотя бы сказал чё это за знак, прямоугольник какой то, это не ровно нифига. Каким образом не его напечатать если я не знаю чё это за знак? После xRotation и после localRotation этот недоквадрат есть. Скажи ЧТО ЭТО ЗА знак??? Это не ровно, ровно после mouse X mouse Y хорошо видно.
улетаю при прыжке //using System.Numerics; using UnityEngine; public class plControl : MonoBehaviour { public CharacterController player; public Transform groundCheck; public LayerMask groundMask; Vector3 velocity; public float gravity = -13.9f; public float graundDistans = 0.4f; public float jupmHeaht = 6.8f; bool isground; public float speed = 8f; private void FixedUpdate() {
34:05 *Автор меняет значение во время запущенного приложение, после чего его перезапускает, и значение возвращается к предыдущему.*
34:20 О, а вот так мне нравится.
))))
Ахахах. "Трюк выполнен профессионалами, не повторяйте дома")
Здесь несколько таких глупых ошибок, но уже в коде. Но не страшно, видно, что он спешил и не стал делать всё хорошо
Спасибо большое, очень информативное видео, так же порадовало присутствие тайм-кодов.
Спасибо большое за урок🔥Видел у Сакутина нечто подобное, но у тебя как-то более подробно вышло, очень круто
Спасибо очень помог, некоторые вещи улучшил или добавил, ты большой молодец 👍🏻
Спасибо!!! Понятно, доходчиво. Урок очень помог
Больше вам спасибо теперь я все понял и про гравитацию и про приседание.
Я всё правильно сделал даже чуть чуть улучшил
спасибо
лучший гайд что я видел, спасибо большое!)
Спасибо за урок!!!! Вы мне очень помогли!!! Не кто не мог нормально объяснить а вы объяснили!! Спасибо вам!😄
Для понимания "как можно реализовать" урок хороший, а вот для игры вариант не очень. В прыжке можно менять траекторию, как джедай какой то, нет проверки на вставание если ты под препятствием, там начинаются приличные глюки, не озвучена реализация подъемов по отвесным лесенкам, спуск или перемещение по потолочным балкам, отсутствует реализация подкатов. )) Загнул я, да )) Но как говориться "взялся за гуж не говори что не дюж". С меня лайк и подписка. Буду следить...
Все таки такой контроллер можно использовать в своей игре. Если сидеть и играться со значениями переменных, то можно сделать прыжок адекватным)
Ну, такой контроллер придётся делать без использования cc или rb
Классный гайд, спасибо большое!
Дружище! Это круто! Это самое толковое что Я находил за .......................................
Спасибо, стараемся)
Не используйте чаптерконтроллер в Unity, если вам нужно адекватное взаимодействие с физическими объектами. Он порой генерит ошибки, которых невозможно избежать. Например, сделал себе контроллер дверей на физике, чтобы всё плавно, открывались от толчка плеером, или по F, чтобы триггер блокировки, для обычных дверей, сдвижных, ящиков, и т.д. Ну и при открывании таких дверей упираешься в них плеером, и получаются адовы глюки...
А как тогда делать игрока от первого лица? 🤨
Все таки нужно будет подучить формулы по физике. За урок спасибо, очень понятно!
Определенно пригодится)
26:18 какая умная формула, я буду так находить переменные в квадратных уравнениях
Бро спасибо большое ты просто лучший
Автор, следовало бы конечно указать что этот "урок" адаптация аналогичного с канала Brackeys. Но за старание и для не понимающих на иностранном конечно лайк.
Да, все верно. У нас очень мало годного русскоязычного контента
Большое спасибо, все предельно понятно :)
огромное спосибо за урок а то я уже несколько дней ищщу нормальную систему прыжка
Успехов!
Спасибо :D!
Большое спасибо в отличие от других видео всё наглядно и понятно и ещё нет ошибок которые надо фиксить самому. С наступающим)
Спасибо!) с наступающим!!)
У меня камера в противоположном направлении двигается
34:14 орнул когда при тесте изменил значение, а потом опять пошёл тестить со старым значением xD
Проверка на бдительность)
Зачем прописывать гравитацию,если для этого rigitbody есть
а.... рили? я думал в 3д его нету
капец я даун
Тут есть выбор управления. Или Character Controller или через Rigid Body
Rb и Cc вместе плохо работают
Спасибо за урок! Всё чётко и понятно. Лайк👍
Спасибо огромное!!!Я теперь делаю игры!и скоро выложу!И спасибо за то что очень понятно объяснил!
Круть, ждём ссылки)
Огромное спасибо
Молодец! Отличный урок, с меня лайк и подписка
Спасибо за отзыв, успехов!
@@KorgiBit на 8:14 можно узнать откуда поле input? когда я пишу у себя в скрипте input.getaxis он вообще не выделяет input другим цветом и в списке автозаполнения слов тоже не показывает такое слово...
@@virus1568 Input если я не ошибаюсь с заглавной буквы
Подскажите пожалуйста: чем лучше графитацию контролировать скриптом, чем галочкой в Rigidbody?
Когда я Rigidbody включик игрок урал и так ходил выглядит мягко говоря неочень поэтому мне кажется лучше через настройку гвавитации
Я 200 подпищик поздравляю з 200 подпишиков
Ееее.. Добро пожаловать в наше маленькое, но активно развивающееся сообщество))
@@KorgiBit А я 900-ый!!)) Есть такой фильм, советую посмотреть, классный)) В переводе на русский "Легенда о пианисте") ну а в оригинале "900")
Топ
Чтобы изменить скорость игрока при приседании нужно найти где приседание в if написать speed = (скорость при приседании)f; а в else написать speed = (обычная скорость игрока)f; и теперь вы будете ходить в присяде с другой скоростью.
У меня почему то не работает совсем(
Я тупой или лыжи не едут?
Здравствуйте, а как можно сделать плавное поднятие, когда персонаж встаёт после приседания?
спасибо большое
Что делать с застреванием коллайдера в стенах? Это заметно даже на видео и мешает нормально перепрыгивать предметы, если сделать на персонаже несколько коллайдеров с разными значениями трения, то они мешают отправлять raycast, то-есть луч врезается в коллайдер самого персонажа и останавливается.
Попробуй в CharacterContorller настроить skinsize(я помню как точно называется но что то с кожей) это позволяет персонажу игнорировать проникновение в коллайдер если если коллайдер вошел с персонажа на расстояние ниже skinSize
АМОГУС
Мне кажется , или же если просчитывать каждый кадр на какую позицию в координатах игрок ушёл , то это будет сильно нагружать игруху и понижать производительность , а так за урок спасибо , некоторые детали возьму для себя)
О_о
А как ты собираешься по иному реализовывать FPS контроллер ?
В том смысле что Frame per second прямо в название содержит принцип. Да и плюс, большинство игр работает по такому принципу. Даже не так. Все игры просчитывают действия игрока каждый кадр!
@@klei4173 не писать это прям сразу в Update , а писать как отдельной функцией , чтобы была ниже нагрузка в будущем , крч оптимизировать эту хуйню (п.с , разница там есть , всё проверено)
@@gh0stcwtactiksnew_lf340 а в чем разница? Если у тебя есть функция, вызываемая каждый кадр? Но соглашусь, что с тз оптимизации, работы с кодом и его читабельности нужно писать отдельные методы. Иначе целая рота чертей ноги сломит..
@@gh0stcwtactiksnew_lf340 Л - логика
Нет, для компа просчёт тяжёлый занимает отрисовка света каждый кадр, а не перемещёние через матрицу перехода, эту хйню, он считай мгновенно делает
в if по графитации после -2f надо было поставить * Time.deltaTime
"RigidBody" - ну да, ну да пошел я на #ер😅
По сабжу - код рабочий, но так реализовывать обозначенные задачи я крайне не рекомендую... если сами себе не поломаете пальцы в процессе, то другие разрабы точно.
Сделала всё как у Вас. При нажатии "с" приседает, но когда отпускаю клавишу падает вниз аж за карту... Что может быть не так?...
я новчико в программирование не всё понял но работает первую игру создаю ))в юнити уже хорошо освоялся но си шарп плохо
Успехов!)))
Все, кто пишут, что это говно-код: его фишка в том, что его дегко понять даже такому чайнику, как я. А если вы его поняли, то вы можете его доработать. Я, например, сделал ограничение по вращению камеры по вертикали, улучшил прыжок, и убрал возможность "ходить" в время прыжка. И это при том, что опыт разработки в Unity у меня - дырка в бублике. ХЗ, что бы я делал без этого видоса...
Хехе топ спс
Спасибо вам огромное!
все очень хорошо и понятно.
Смотрел много роликов как сделать управление мышкой, но иногда управление не работало вообще, либо был баг, позволяющий проворачивать голову вверх и вниз бесконечно. После вашего видео у меня получилось сделать своего персонажа.
А как сделать переключение анимаций с ходьбы на бег при зажатом Shift+W
Спасибо
У меня только по у крутиться,а по х нет,убираю код на кручение по у как всё работает,что делать?
У меня такое же ты всё ещё не разобрался?
У меня одни был ошибки я все правильно записываю но бл
Разобрались или нет?
Спасибо за урок🔥🔥🔥продолжай очень полезно 🔥
Спасибо, стараемся!)
прикольно
Здравствуйте ваш урок очень хороший и понятливый сделал всё кроме поворота головы с ней появилась проблема скрипт написан ошибок нет но камера с туловищем вращаться не хочет. Можете сказать пожалуйста в чем примерно может быть проблема?
4:33 амонг ус
Ахах, похож, похож)) только чуть упорот
Отличный урок. Сколько времени осваивал С# ?
Можно ли сделать так чтобы камера двигалась и по оси Y? И как это сделать нормально а не так чтобы у нас шея желейная была
Привет сделай видео как лазать по вертикальным лестницам
Я написал скрипт для передвижения в точь как у тебя но мне пишет ошибку cs1022 что сделать?
так же
Спс за урок, но жаль что канал забросил! По уроку все супер, но почему все по разному пишут и как понять где более верный подход?
Скоро новый контент)
Единственного правильного подхода к написанию кода нет. Но есть несколько критериев: читаемость, скорость работы, поддерживаемость.
@@KorgiBit Ждемс
Почему то у меня как то дергает камеру когда я жвигаю ей
Изменено : пишу новый скрипт и вообще игра не запускается пишет про какой то инпут
cпасибо
Очень круто! А подскажи формулу сохранении энергии, простым языком когда ты в воздухе отпускаешь клавиши надо чтобы перс продолжал лететь. Как это сделать?
Он и без того летит у меня.
Assets\MouseLook.cs(18,65): error CS0117: 'Time' does not contain a definition for 'DeltaTime'
Так Time.deltaTime же ж
@@KorgiBit спасибо
Почему,я немогу даже переписать этот код,я настолько плох, у меня не воспринимаеться input как у него словно в библеотеке нету я хз
Возможно, стоит проверить правильность написания команд, если остальные подсказки есть.
Если есть ощущение, что одному не получается осилить, у нас есть курс для начинающих - подробнее в дискорд BorislavSin#6450
А что делать если прыгнуть в стену и идти дальше. И ты застреёшь там
38:20 А почему персонаж застревает в стене?
14:40 А можно обойтись как-то без localRotation? Из-за него я тупо не могу сделать отдачу, так как камера намертво закрепляется.
У меня звук шагов не прикручивается к нему. Возможно проблема в том, что тип перемещения отличается от стандартного фпс
После создания скрипта PlayerMovment возникла проблема: персонаж движется сам по себе по диагонали.
у меня игрок не может голову вверх и вниз двигать хотя скрипт такой же
Как найдешь решение отпишись
А есще это происходит после кода transform.localRotation = и тд
У меня скрипт вообще не работает и часть скрипта цветом не горит хотя один в один
всё сделал, но когда прыгаю впритык к какому то ящику, персонаж лагает\прилипает к этому обьекту
подскажите, может кто то знает решение проблемы?
у меня почему то прыжок могжно сделать в воздухе, что с этим делать?
можно было сделать типо
if (gravity < -9.8f)
{
gravity = -9.8f;
}
gravity не меняется это константа. Меняется только velocity
Что делать он не поворачивает головой мой персонаж
Я все правильно делал, как ты.
Блин у меня какая-то ошибка пишет что "=" Не является классом и пишет mouse X не работает
Когда сажусь проваливаюсь под землю, что делать???
Здравствуйте, возник вопрос?
а как создать вид от третьего лица? простое передвижение камеры не работает
Слежение камеры за таргетом
@@youchinafriend пофиг, я уже забил на создание игры)))
Диплом защитил и забил
У меня вообще не крутится, что делать.
Зачем добавлять гравитацию в скрипте если можна просто добавить компонент Rigidbody
почемуто поворот камерой не работает, скрипт написан точно также
20:50 почему у тебя Move не появляется красная полоса, а у меня есть?😢
А как сделать так чтобы при приседания персонаж начал медленнее ходить чем при обычной ходьбе без спринта?
Можно сделать переменную типа isCrawling , и делать, проверку, если она там в значении true, то изменять переменную speed)
@@KorgiBit не проще ли при проверке кнопки приседа просто уменьшать скорость вдвое, как с ускорением?
4:26 амонгасик
Есть такое))
не работает скрипт
velosity.y = Mathf.Sqrt(Jump * -2 * Grav);
помогите пожалуйста
velocity попробуй вместо velosity
AMOGUS
Не работает,пишет что у многих команд например: Quaternion does not contain a defintion for "Fuler"
Потому что кватернионы измеряются в Euler ;)
Все делаю по образцу но он не двигается((, в 2022 юнити как то по другому прописывается все
Код устарел, но работает. Проверь, добавлен ли скрипт на объект, который должен двигаться
@@KorgiBit Да проверил, не только с вашего канала пробовал по скрипту движения прописывать, ноль реакции и это странно, так как все идентично сделано
Привет у меня почему-то появилась такая проблема что при нажатии пробела персонаж подпрыгивает, но если во время полета нажать еще раз пробел то он подпрыгнет выше и так пока жмем пробел. Как сделать чтобы персонаж прыгал один раз ?
Если коротко - проверять, касается ли персонаж пола.
Подскажите, а как повысить чувствительность мыши?
Можно ввести, переменную mouse_sensitivity и домножать то что мы получаем из input на неё) и изменяя переменную, мы изменяем чувствительность мыши
Если игрок находится у стены, то прыжок ломается.
32:23
это я для себя
Почему у меня камера не поднимается и опускается а в место етого дергактся?
Как убрать обязательные семиколоны?
Подскажите пожалуйста : Возможно ли все эти махинации провести с анимированным персонажем и если да то как (если можно то подробно🥺)
Ставишь blend tree, и перекидываешь параметры из движения в animation controller
Почему он не оставил ссылку на fps controller?
Потому что мы должны тратить нервы и когда нибудь через 10 лет поймëм что не поставили точку где нибудь
15:39 передаёт он курсор лок мод. Ты бы хотя бы сказал чё это за знак, прямоугольник какой то, это не ровно нифига. Каким образом не его напечатать если я не знаю чё это за знак? После xRotation и после localRotation этот недоквадрат есть. Скажи ЧТО ЭТО ЗА знак??? Это не ровно, ровно после mouse X mouse Y хорошо видно.
Как поставить такое оформление в визуалстудии код?
Вбей how to change background visual studio code в ютуб)
А ссылка в описании где?
где можно скачать твой скрипт?
21:20 не получается перекинуть фпс контроллер что делать?
улетаю при прыжке
//using System.Numerics;
using UnityEngine;
public class plControl : MonoBehaviour
{
public CharacterController player;
public Transform groundCheck;
public LayerMask groundMask;
Vector3 velocity;
public float gravity = -13.9f;
public float graundDistans = 0.4f;
public float jupmHeaht = 6.8f;
bool isground;
public float speed = 8f;
private void FixedUpdate() {
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
isground = Physics.CheckSphere(groundCheck.position, graundDistans, groundMask);
if (isground && velocity.y < 0)
velocity.y = -2f;
if (Input.GetButtonDown("Jump") && isground)
velocity.y = Mathf.Sqrt(jupmHeaht * -2f * gravity);
velocity.y += gravity * Time.fixedDeltaTime * Time.fixedDeltaTime;
player.Move(velocity);
Vector3 move = transform.right * x + transform.forward * z;
player.Move(move * speed * Time.fixedDeltaTime);
}
}
*В MouseLook я написал то же самое, но юнити даёт мне ошибку на Fuler, помогите, пожалуйста.*
Там Euler) и ничего что прошло много времени
@@dekiv9775 Я как бы это уже давно знаю, но спасибо)
бро помоги пожалуйста, когда я прыгаю он медленно опускается, люди помогите пожалуйста
увеличь гравитацию
Помогите у меня камера не разворачивается вверх