在Unity 3D中完成动画后如何更改图像

时间:2018-10-03 14:01:17

标签: unity3d animation

我只想单击一次播放动画,然后在动画完成其图像更改后再播放。问题在于动画保持在我定义的状态之一,因此显示了动画的图像。请帮助我,我到处搜索过但没有锻炼。我是初学者,这个动画非常重要

Scrrenshot of Animation

3 个答案:

答案 0 :(得分:1)

当SpriteRenderer或Image由动画控制时,无法手动设置Sprite,必须使用动画。单击后要显示的单个帧使状态变为新状态。然后在Animator中从单击状态过渡到新状态。点击动画播放完毕后,它将转到另一个状态并显示另一个图像,直到您使其转变为再次单击为止。

对于您的特定情况,您需要为每个结果设置一个状态。因此,您将在骰子变成1时设置一个状态,在骰子变成2时设置一个状态,然后使用animation parameter类型为int的Animator.SetInteger通知动画师结果}。然后,您的transitions将具有基于结果状态表示的数字的条件。因此,对于第一种状态,条件应为“动画参数等于1”。

以下是视觉辅助: enter image description here

答案 1 :(得分:0)

看看“状态机行为”及其“ OnStateExit”方法

public Animator Anim;

void Update()
{

    if (Input.GetMouseButtonDown(0))
    {
        //Play Animation On CLick
        Anim.Play("YourAnimation");
    }

}

在状态机行为上(将此行为添加到Animator中的动画状态中)

override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
    //Change Sprite Code
}

请参见

答案 2 :(得分:0)

您可以通过在<p id="text"><br> Name </p> <div> <select name="color" id="change" onchange="signature()"> <option value="black" selected>Black</option> <option value="red">Red</option> <option value="yellow">Yellow</option> <option value="blue">Blue</option> <option value="green">Green</option> </select> </div>中设置精灵来覆盖精灵对Animator的控制。最简单但可能不是最有效的方法是:

  1. 在动画的末尾添加一个动画事件,该事件调用一个函数。我们称之为LateUpdate()
  2. AnimationComplete()内设置一个标志。
  3. AnimationComplete()内,检查是否设置了该标志。如果是,则更改您的精灵。

    LateUpdate()