Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

У Unity объекта есть трение при drag = 0

Ctrl Ученик (210), на голосовании 2 месяца назад
Есть куб с box collider, капсула с capsule collider и rigidbody. Если отключить гравитацию или поднять объект и заморозить Y позицию, все работает как должно. Движение по новой input системе, с помощью класса PlayerInput, события отправляются с помощью unity events (То есть скорость задается единоразово при изменении ввода)
 public class Player : MonoBehaviour 
{
[SerializeField] private float _speed = 1;

private Rigidbody _rigidbody = null;
private void Awake()
{
_rigidbody = GetComponent();

}
public void OnWalk(InputAction.CallbackContext ctx)
{
Vector2 direction = ctx.ReadValue();
Vector3 v = new(direction.x, _rigidbody.velocity.y, direction.y);
_rigidbody.velocity = Vector3.ClampMagnitude(v * _speed, _speed);
}

}
При запуске и нажатии на клавишу игрок делает небольшой рывок и останавливается. не знаю что делать(
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (242439) 3 месяца назад
Попробуйте выводить значение direction в Debug.Log.
Вполне возможно, что в какой-то момент этот вектор становится нулевым.
CtrlУченик (210) 3 месяца назад
Исключено, в компоненте rigidbody видно, что скорость спадает постепенно, а не рывками, вот значения при нажатии клавиш
Ctrl Ученик (210) Ctrl, И как я уже говорил если только отключить гравитацию, все работает как должно
CtrlУченик (210) 3 месяца назад
Пробовал добавить кубу RB и поставить kinematic/ заморозить позицию и вращение, но результат тот же
Похожие вопросы