我正在尝试让我的角色出击和跳跃。跳转可以工作,但动画并不总是播放。play要么根本不播放,要么在动画中途冻结。下面是我的代码。我认为错误出在StopPunch周围的行中(这些行不是我写的,而是在另一个类似问题的解决方案中找到的)。代码是正确的,我的错误可能是统一的吗?任何帮助都将不胜感激!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playermovement : MonoBehaviour {
public CharacterController2D controller;
public Animator animator;
public float runSpeed = 40f;
float horizontalMove = 0f;
bool jump = false;
bool crouch = false;
bool punch = false;
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;
}
if (Input.GetButtonDown("Punch"))
{
punch = true;
if (punch)
{
animator.SetBool("IsPunching", true);
StartCoroutine(StopPunch(2.0));
}
}
void StopPunch (float waitTime)
{
yield WaitForSeconds (waitTime);
animator.SetBool("IsPunching", 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;
animator.SetBool("IsPunching", false);
}
}发布于 2021-06-08 05:56:23
如果你点击远离冲压的过渡,在检查器中,你应该会看到屏幕截图中的设置,这应该允许动画完成。我猜你需要使用其中的一些设置。

https://stackoverflow.com/questions/67878777
复制相似问题