Скажите, что у меня есть точка в Vector3, и мой FPSController (я использую стандартный, который поставляется с Unity 5) перемещает величину в 10 от этого Vector3. Я хочу не допускать движения в любом направлении, помимо величины 10. В идеале я бы предвидел, в каком направлении игрок нажал, чтобы перейти, протестировать этот вектор, и если он будет меньше 10, то это позволит двигаться дальше. Таким образом, если вы в 10 лет и нажмите «назад», вы не сможете двигаться, но если вы нажмете «вперед», тогда проблем не будет.Проверьте, превышает ли требуемое движение игрока значение?
Я знаю, что я немного абстратен здесь. Насколько я понимаю, скрипт FPSController.cs использует компонент CharacterController. Я уже некоторое время изучал код FPSController и замечаю, что он выполняет всевозможные вычисления в локальной позиции, но величина должна быть между двумя мировыми координатами.
Я знаю, как рассчитать величину уже, все, что мне нужно знать, - это проверить ожидаемое направление. У меня такое ощущение, что это проще, чем я думаю?
Я не понимаю, что вы подразумеваете под «Я хочу не допускать движения в любом направлении, помимо величины 10.» Вы говорите, что хотите ограничить игрока в пределах 10 единиц с определенной точки? Или вы хотите ограничить их скорость? – 31eee384
Я хочу сдержать их на 10 единиц с определенной точки. Вы привязаны к веревке, и как только она растянулась до своей длины, вы больше не можете идти – mythstified