Я относительно новичок в программировании.Я работаю над 2D-платформером и пытаюсь заставить объект подпрыгивать на постоянной высоте, с довольно высокой скоростью перемещения, с небольшим пространством между отскоками.У меня есть первые два, но у меня возникли некоторые проблемы с последней частью.
По сути, я хочу, чтобы объект падал на землю чаще, чем это происходит, но пока, единственный способ, которым я достигто есть, уменьшая скорость движения, что заставляет его двигаться слишком медленно.
Вот некоторый код, чтобы показать, что я делаю (я вырезал все, что не имеет отношения к фактическому подпрыгиванию):
public class Ball : MonoBehaviour
{
[SerializeField] float moveSpeed = 12.0f;
[SerializeField] float bounce = 180.0f;
Rigidbody2D myRigidbody;
CircleCollider2D myCollider;
void Start()
{
myRigidbody = GetComponent<Rigidbody2D>();
myCollider = GetComponent<CircleCollider2D>();
}
void FixedUpdate()
{
Move();
Bounce();
}
private void Move()
{
myRigidbody.velocity = new Vector2(moveSpeed, myRigidbody.velocity.y);
}
private void Bounce()
{
if (!myCollider.IsTouchingLayers(LayerMask.GetMask("Ground"))) { return; }
myRigidbody.AddForce(Vector2.up * bounce);
}
}
Вот изображение, иллюстрирующее то, о чем я говорю:
![enter image description here](https://i.stack.imgur.com/WKwNH.jpg)
Пример 1 на этом изображении - результат, который у меня есть на данный момент,в то время как пример 2 - результат, который я хочу.
Может кто-нибудь сказать мне, как я могу достичь результата примера 2, не уменьшая скорость движения?Спасибо.