2015-12-19 10 views
0

Я ноб в Unity, и я начал писать 2-й сверху вниз шутер (идея состоит в том, чтобы сделать что-то вроде Hotline Miami). Проблема заключается в том, что, насколько я понимаю - для того, чтобы выявить столкновение игрока со стенами, нужно использовать rigidbody2d, однако, когда я применяю жесткую фигуру к моему плееру, и я использую hardidbody2d.velocity для перемещения, когда мой линейное сопротивление низкое, характер, похоже, скользит, и когда он высок, скольжение меньше, но у игрока, похоже, есть своего рода инерция, которая делает движение не таким естественным, как с transform.translate.Плавное перемещение сверху вниз 2-го символа в Uniity

Есть ли способ сделать это более плавно?

ответ

0

Я полагаю, что вы говорите, что хотите, чтобы жесткое тело не использовало ускорение, но чтобы немедленно изменить скорость? Ну для того что вы могли бы сделать, это использовать ForceMode2D.Impulse, так что вы бы что-то вроде этого:

RigidBody2D RB = /*your rigidbody2D*/; 
Vector2 V2 = //Your Direction; 
float Speed = //Your Speed; 
RB.AddForce(V2 * Speed * Time.deltaTime, ForceMode2D.Impulse); 
/* You also shouldn't directly change .velocity directly; it's not good practice. 
You multiply by Time.deltaTime for a smooth transition between frames */ 

Кроме того, если вы хотите полностью отказаться физический движок и придерживайтесь переводить, вы можете изменить масштаб тяжести в Компонент объекта RigidBody2D равен нулю и просто использует .Translate().

 Смежные вопросы

  • Нет связанных вопросов^_^