Zefirot, Ты хоть сам понимаешь что делаешь? Если ты вместо GroundCheckerPosition укажешь Vector3.zero, он у тебя будет указывать в центр твоего объекта, на котором этот монобех висит. В данном случае GroundCheckerPosition - смещение от центра объекта. То же самое у тебя будет, если ты вместо TransformPoint напишешь просто transform.position. Еще раз повторяю.
GroundCheckerPosition у тебя задается единоразово в эвейке. Vector3 - значимый тип данных. Это значит, что у тебя не ссылка на какой-то вектор в GroundCheckerPosition, а значение вектора, оно не меняется с перемещением объекта.
У тебя есть GroundChecker. Это уже GameObject - ссылочный тип. То есть, если ты будешь брать GroundChecker.transform.position, то тебе будет возвращаться вектор текущей позиции, а не той, которая была минуту назад, которую ты в эвейк взял.
Соответственно, у тебя будет не Physics.CheckBox(GroundCheckerPosition, GroundCheckerHalfSize);
А Physics.CheckBox(GroundChecker.transform.position, GroundCheckerHalfSize);
Соответственно, не Gizmos.DrawCube(GroundCheckerPosition, GroundCheckerSize);
А Gizmos.DrawCube(GroundChecker.transform.position, GroundCheckerSize);
Zefirot, У тебя есть GroundChecker, у которого ты в эвейк позицию берешь. Тебе нужно напрямую к нему обращаться, чтобы позицию текущую брать, а не ту, которую в эвейк берешь. GroundChecker.transform.position.
И однострочный if-else ухудшает читаемость кода, зачем это "сокращение"? И прикладывай код класса полностью(с названием и т.д.), чтобы форматирование нормальное было.
yraiv, Найти человека, который использовал это и у него возникла твоя проблема невозможно, т.к. этот ассет в большинстве своем используется людьми, которые не могут сделать такую элементарную вещь как управление персонажем. Либо пиши разработчику ассета, либо свое делай. Свое сделать будет быстрее и проще.
А что тебе надо? Если хочешь максимально контролируемое движение, то rigidbody.MovePosition. Если просто через физику двигать - rb.velocity/addforce. Addforce в том случае, когда нужна именно физика, т.е. самолет там смоделировать или вертолет.
Плохой. Автор видео даже сам не знает что лучше AddForce или изменение велосити. Для платформера(почему именно для платформера, непонятно) у него какие-то "все" выставляют гравитацию в -40. Прилипание к поверхности решает путем уменьшения трения. Проверка на соприкосновение с землей через overlapcircle с фильтрацией по слою(ну хоть не по тэгу), т.е., на каждый объект, по которому можно ходить, нужно добавлять определенный слой. Код, как и у всех подобных ему ютуберов, убогий. Исключительно публичные поля, какое-то название поля с большой буквы пишет, какое-то с маленькой, в чем разница между ними непонятно. Названия из генератора рандомных слов. Накопипастил код со стековерфлоу, причем, по всей видимости, из вопросов и выложил на ютуб. Собственно, название канала удивительно подходит для автора. Посмотрят пару гайдов на ютубе и уже идут пилить свои, а потом люди, учившиеся по их гайдам, удивляются, почему их не берут на работу.
Zefirot, У тебя есть коллайдер. Вместо рейкаста делай каст своего коллайдера. BoxCast, BoxCastNonAlloc. Он вернет тебе все, чего касается и не нужно будет ни трансформов ли рейкастов. Понять где земля где нет, можно, отфильтровав результаты рейкаста по нормали.
привычка...
Такая себе привычка, если кто-то увидит, что твой код отходит от стандартов, тебя за это пинать будут.