Плохой. Автор видео даже сам не знает что лучше AddForce или изменение велосити. Для платформера(почему именно для платформера, непонятно) у него какие-то "все" выставляют гравитацию в -40. Прилипание к поверхности решает путем уменьшения трения. Проверка на соприкосновение с землей через overlapcircle с фильтрацией по слою(ну хоть не по тэгу), т.е., на каждый объект, по которому можно ходить, нужно добавлять определенный слой. Код, как и у всех подобных ему ютуберов, убогий. Исключительно публичные поля, какое-то название поля с большой буквы пишет, какое-то с маленькой, в чем разница между ними непонятно. Названия из генератора рандомных слов. Накопипастил код со стековерфлоу, причем, по всей видимости, из вопросов и выложил на ютуб. Собственно, название канала удивительно подходит для автора. Посмотрят пару гайдов на ютубе и уже идут пилить свои, а потом люди, учившиеся по их гайдам, удивляются, почему их не берут на работу.
Zefirot, У тебя есть коллайдер. Вместо рейкаста делай каст своего коллайдера. BoxCast, BoxCastNonAlloc. Он вернет тебе все, чего касается и не нужно будет ни трансформов ли рейкастов. Понять где земля где нет, можно, отфильтровав результаты рейкаста по нормали.
привычка...
Такая себе привычка, если кто-то увидит, что твой код отходит от стандартов, тебя за это пинать будут.
А что нужно?
Если поверхность под коллайдером не плоская, то один рейкаст может доходить до этой поверхности, а второй нет, в силу того, что у тебя максимальная дистанция в 0.1 выставлена. Либо при движении его физика выталкивает из коллайдера под ним, он поднимается вверх, рейкаст не доходит до поверхности.
Зачем тебе вообще эти 4 рейкаста?
Зачем тебе GroundTouchPoint в виде трансформа, когда там просто вектор должен быть?
Зачем тебе K&R стиль отступов, когда в c# используется Allman?
Zefirot, Попробуй убрать лерп и делать то же самое, что ты выше делаешь. Определяй нормализованное направление и двигай в эту сторону, пока не достигнет нужной позиции.
Zefirot, Ну так ты отправляй позицию для коррекции. От клиента на сервер уходит инпут и координата для коррекции, от сервера все отправляется остальным клиентам, у них корректируется позиция, если нужно и выполняется команда (двигаться, прыгать, стрелять и т.д). Я не нетворк разработчик, так что могу где-то ошибаться, лучше спроси на каких-нибудь профильных ресурсах или гугли Client-side prediction
Zefirot, Абсолютно не важно, используешь ты дельту физики или отрисовки, в FixedUpdate твоя deltaTime превращается в fixedDeltaTime, твоя проблема здесь явно не в этом. Как тебе сказали в другом ответе, тебе нужно передавать не позицию, а команды управления и перемещать объект на клиентах.