я могу как-нибудь написать этот код для оптимизации?
Если не использовать сопрограммы, когда я нажимаю на пробел, следующий прыжок имеет больше силы и так далее.
Если использовать rb.MovePosition, персонаж будет двигаться как 15 кадров в секунду. Я знаю, время изменения в настройках. Но я хочу знать, существует ли другой метод ...
private void Update() {
if(Input.GetKeyDown(KeyCode.Space)) {
StopAllCoroutines();
StartCoroutine(Jump());
}
}
private IEnumerator Jump() {
if(rb.bodyType != RigidbodyType2D.Dynamic) {
rb.bodyType = RigidbodyType2D.Dynamic;
}
rb.constraints = RigidbodyConstraints2D.FreezePositionY;
_pos = transform.position;
for (float t = 0; t < 1; t += Time.deltaTime * 4f)
{
transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, _pos.y + .35f, transform.position.z), t);
yield return null;
}
rb.constraints = RigidbodyConstraints2D.None;
}