团结动画

时间:2016-07-28 02:27:24

标签: c# animation unity3d

我正在尝试使用基于键输入的脚本来更改角色动画,但Unity似乎只播放默认的“常驻空闲”动画并偶尔切换到“蹲伏的空闲”,是否有不同的方法来处理动画或者我只是做错了?这是我目前的脚本

IntOps

4 个答案:

答案 0 :(得分:0)

尝试替换

if (Input.GetButton ("Fire3")) {
    if (crouched == false) {
        crouched = true;
    } else {
        crouched = false; 
    }
}

if (Input.GetButton ("Fire3")) {
    crouched = true;
} else {
    crouched = false;
}

现在,当您按住“Fire3”按钮时,您的角色应该蹲伏,当您释放它时,他/她应该再次站立

还有一个建议:将其他代码放在函数(if (crouched == true) ... animator.Play (sc + "idle");后面这段代码(Input.GetButton检查)。这样,你的角色应该立即开始蹲伏按下按钮的同一帧<否则,他/她将在

后的框架

说明

当您在按钮每个框架上按下(在点击或触摸的中间)时,

Input.GetButton将返回true。每次调用Update(大约1/60秒),您的代码都会检查您是否按下了,并切换crouched。当您点击/点按该按钮时,您可能会按下几帧,因此crouched会从true切换到false,来回几次。在某些情况下(按下奇数帧时),crouched将被切换,但在其他情况下(按下偶数帧时)crouched将保持不变在你点击按钮之前,阻止你的角色蹲伏,或者在他之前蹲伏时站立。

来源:来自官方API:Input.GetButton

答案 1 :(得分:0)

我强烈建议您在获得输入时使用动画状态并从一个传输到另一个。在Unity 2D animation running partially

查看我的答案

答案 2 :(得分:0)

是的,您可以像这样进行切换操作

void Update()
{
   if(Input.MouseButtonDown(2))
  {
    crouched = true;
  }
  if(Input.MouseButtonUp(2))
  {
    crouched  = false;
  }
}

答案 3 :(得分:0)

您可以尝试以下代码:

crouched = Input.GetButtonDown("Fire3") ? true : false;