繁体   English   中英

Unity动画

[英]Unity Animations

我试图基于脚本输入,使用脚本来更改角色动画,但是Unity似乎只播放默认的“站立闲置”动画,偶尔切换到“蹲下闲置”,是否有其他处理动画的方法?只是在做脚本错误? 这是我目前的脚本

using UnityEngine;
using System.Collections;

public class CharacterControl : MonoBehaviour {

    private Animator animator;
    public bool crouched;
    private string sc;

    // Use this for initialization
    void Start () {

        animator = GetComponent<Animator> ();

    }

    // Update is called once per frame
    void Update () {

        if (crouched == true) {
            sc = "crouch";
        } else {
            sc = "standing";
        }

        animator.Play (sc + "_idle");

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

    }
}

尝试更换

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

我强烈建议您使用动画状态,并在收到输入时从一个状态过渡到另一个状态。 在以下位置查看我的答案: Unity 2D动画部分运行

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

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

您可以尝试以下代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM