我如何在按下按钮时播放动画

时间:2019-12-14 07:32:36

标签: c# visual-studio unity3d animation button

我正在做我的第一场比赛,但我被困住了。我正在制作主菜单。我要确保当我按下开始游戏按钮时,动画播放并开始该游戏。我不知道从哪里开始。启动游戏的按钮有效,并且我已经创建了动画,并且可以工作,但是我不知道该如何组合。

我试图使按钮播放带有'animation.play'的动画,但这不起作用。

谢谢。

3 个答案:

答案 0 :(得分:2)

*引用的答案*

首先,打开您的动画器并创建一个新的bool,称为“ Run”或您会记住的东西。 接下来,编写一个这样的脚本,并将其放在角色上。

    public void PlayAnimation() {
        GetComponent<Animator>().SetBool("Throw",true);
    }

现在,创建一个新的UI按钮,然后单击“ +”按钮以添加新的OnClick功能。

接下来,将您的玩家拖到GameObject预制插槽中,单击底部的下拉菜单,找到脚本的名称,然后转到您创建的功能(例如,在本例中为PlayAnimation() )。

您可以检查Unity answersHere

答案 1 :(得分:1)

如果您要制作更多的动画,请考虑为游戏实现动画控制器。

在您的Animations文件夹中,RMB-> Create-> Animator Controller。接下来为其添加一个Idle动画(默认情况下是必需的),只需创建一个新的默认动画,然后添加所需的动画(例如FadeIn等)。您将得到图片中的东西。接下来,将您的Animator控制器附加到要设置动画的GameObject。

enter image description here

对于您的脚本,考虑在GameManager或AnimationController等下实现它(这是一个好习惯)。得到这样的东西:

public class GameManager : MonoBehaviour
{
    public GameObject objectToAnimate;

    private Animator animator;

    private void Awake() => animator = objectToAnimate.GetComponent<Animator>();

    public PlayAnimation() => animator.Play("FadeIn");
}

别忘了填写objectToAnimate字段并将PlayAnimation()函数附加到按钮上。

答案 2 :(得分:0)

Shrembo所说的差不多,但是,如果您想使用按钮触发动画,我就不会使用布尔-我会使用触发器,因为您需要在某一时刻将布尔设置为false。

因此,首先您需要通过在项目视图中单击>创建>动画控制器来创建动画控制器。然后打开它并拖动动画。现在要触发动画,您需要添加一个过渡,并在上述过渡上添加trigger参数。 (在右侧,您可以创建该触发器)

现在在代码中,您将执行以下操作:

public class AnimationMotor : MonoBehaviour 
{

public Button AnimationButton;

private Animator animator;

private void Start()
{

    AnimationButton.onClick.AddListener(() => 
    {
        animator.SetTrigger("MyTrigger");
    });
}

}