я думаю, что я делаю ошибку в управлении переходом анимации и их параметрами .. я полностью готов к единству ... может кто-нибудь помочь мне в этом, пожалуйста ... анимация прыжка продолжает выходить в середине и возвращаться в режим ожидания без завершения. ,
Переход есть
Холостой ход; isRunning = true
Беги на холостые; isRunning = false
Бег, чтобы прыгать; isJumping = true
холостой ход isjumping = true
переход в режим ожидания; isjumpinh = false
Я пытался сделать несколько вещей, но это не сработало .. если это новичок, извините, но я не могу заставить его работать
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private Animator anim;
private Rigidbody rb;
float runningSpeed = 30f;
float jumpForce = 20f;
bool isJumping = false;
bool isRunning = false;
// Start is called before the first frame update
void Start()
{
anim = this.gameObject.GetComponent<Animator>();
rb = this.gameObject.GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate()
{
move();
if (Input.GetKeyDown(KeyCode.Space))
{
jump();
}
animate();
}
void move()
{
if (Input.GetKey(KeyCode.W))
{
transform.Translate(runningSpeed * Vector3.forward * Time.deltaTime);
isRunning = true;
}
else
{
isRunning = false;
}
}
void jump()
{
rb.AddForce(jumpForce * Vector3.up , ForceMode.Impulse);
isJumping = true;
}
void animate()
{
anim.SetBool("isRunning",isRunning);
anim.SetBool("isJumping", isJumping);
}
private void OnCollisionEnter(Collision collision)
{
if (collision.transform.name == "Ground" && isJumping)
isJumping = false;
}
}