【发布时间】:2020-04-26 17:59:06
【问题描述】:
我正在尝试在 Unity 中制作游戏。我对编码很陌生,但我有一个角色移动脚本。但是,当我按下播放键时,角色会快速进出蹲下和空闲动画。当我按下蹲下键时,角色蹲下并且故障停止,但只要我松开它就会恢复。这是我的整个脚本。
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 动画师中,动画只是快速启动。如果这是一个简单的解决方法,请原谅我。任何帮助将不胜感激。
编辑- 在动画器中,名为“IsCrouching”的参数会闪烁,无论我是否按下键。
【问题讨论】:
-
除了你永远不会取消跳转之外,检查你的动画设置,你可以在运行时观看它们,看看设置了什么,看看触发了什么,并检查状态以了解原因