почему моя анимация прыжка останавливается посередине и возвращается в режим ожидания? - PullRequest
0 голосов
/ 10 мая 2019

я думаю, что я делаю ошибку в управлении переходом анимации и их параметрами .. я полностью готов к единству ... может кто-нибудь помочь мне в этом, пожалуйста ... анимация прыжка продолжает выходить в середине и возвращаться в режим ожидания без завершения. , Переход есть

Холостой ход; 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;
}


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...