У меня есть следующий код, который добавляет силу к hardbody2d в случайном направлении и пытается установить линейное сопротивление равным 0 при достижении определенной скорости, по существу позволяя игровому объекту медленно уплывать.
Проблема в том, что перетаскивание как бы сразу установлено на 0, и я не понимаю, почему, и поэтому я не могу решить проблему.
void Update () {
if (Input.GetKeyDown ("space")) {
rb.velocity = Vector3.zero;
Vector3 dir = Random.onUnitSphere;
rb.AddForce (dir * 10, ForceMode2D.Impulse);
}
if (rb.velocity.magnitude <= 1) {
rb.drag = 0;
}
}
Спасибо, Круз.
<= 1
, что дает вам rb.drag = 0. Вы никогда не меняетеrb.drag
после установки один раз. - person Fredrik Schön   schedule 19.06.2017else if (rb.drag != yourMagnitude) { rb.drag = yourMagnitude; }
на этом if. Так что он плавает на низких скоростях и уменьшается на высоких скоростях. - person Fredrik Schön   schedule 19.06.2017