Я изучаю Unity, и я делаю движение персонажа, но анимация прыжка имеет задержку для буквального прыжка персонажа, 0,30 секунды, пока не поднимется, как мне добавить эту задержку в код
Например, я думал о том, чтобы сделать так, чтобы, когда вы нажмете «Космос», отпустили анимацию, посчитали 0,20 секунды и совершили прыжок. это жизнеспособно? Как я могу это сделать?
Короче говоря, персонаж прыгает перед анимацией.
Анимационное видео:
https://imgur.com/a/LgzkSKi
public class PlayerController : MonoBehaviour {
public float moveSpeed;
public float jumpForce;
public CharacterController controller;
private Vector3 moveDirection;
public float gravityScale;
public Animator animator;
void Start() {
controller = GetComponent<CharacterController>();
}
void Update() {
float yStore = moveDirection.y;
moveDirection = (transform.forward * Input.GetAxis("Vertical")) + (transform.right * Input.GetAxis("Horizontal"));
moveDirection = moveDirection.normalized * moveSpeed;
moveDirection.y = yStore;
jump();
controller.Move(moveDirection * Time.deltaTime);
animator.SetFloat("Speed", (Mathf.Abs(Input.GetAxis("Vertical"))));
}
void jump() {
if (controller.isGrounded) {
moveDirection.y = 0f;
if (Input.GetButtonDown("Jump")) {
moveDirection.y = jumpForce;
Debug.Log("jump");
}
}
moveDirection.y = moveDirection.y + (Physics.gravity.y * gravityScale * Time.deltaTime);
animator.SetBool("isGrounded", controller.isGrounded);
}
}