Я пытаюсь сделать игру в Unity. Я очень плохо знаком с кодированием, но у меня есть скрипт для перемещения персонажа. Тем не менее, когда я нажимаю на кнопку воспроизведения, персонаж срывается с места на корточки и быстро отключается. Когда я нажимаю клавишу «Crouch», персонаж наклоняется, и сбои прекращаются, но как только я позволяю go, он возобновляется. Вот весь мой сценарий.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public CharacterController2D controller;
public Animator animator;
float horizontalMove = 0f;
public float runSpeed = 40f;
bool jump = false;
bool crouch = false;
// Update is called once per frame
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
animator.SetFloat("Speed", Mathf.Abs (horizontalMove));
if (Input.GetButtonDown("Jump"))
{
jump = true;
animator.SetBool("IsJumping", true);
}
if (Input.GetButtonDown("Crouch"))
{
crouch = true;
}
else if (Input.GetButtonUp("Crouch"))
{
crouch = false;
}
}
public void OnLanding()
{
animator.SetBool("IsJumping", false);
}
public void OnCrouching(bool isCrouching)
{
animator.SetBool("IsCrouching", isCrouching);
}
void FixedUpdate()
{
//Move our character
controller.Move(horizontalMove * Time.fixedDeltaTime, crouch, jump);
jump = false;
}
}
В аниматоре Unity анимации только быстро запускаются. Простите, если это легко исправить. Буду признателен за любую помощь.
Edit- В аниматоре параметр с именем «IsCrouching» мигает, проверяется и не проверяется, нажимаю ли я клавишу или нет.