我有四个按钮来选择数字范围。 (单击的按钮应设置动画并保持缩放,以指示选择了哪个按钮)我试图统一播放按钮单击时的动画。因此,当单击按钮时,将播放动画并返回到空闲状态。但是我不希望它返回到空闲状态,而是希望它保留在单击动画剪辑的最后一帧(最后一帧比例为1.2)。循环时间未选中。 我在检查器中分配了onclick动画播放器播放(字符串)。请帮忙 还尝试了以下代码
public GameObject rangeBtn;
public Animator rangeBtnAnim;
private void Start()
{
if ((rangeBtn != null) && (rangeBtn.GetComponent<Animator>() != null))
{
rangeBtnAnim = rangeBtn.GetComponent<Animator>();
}
}
public void PlayAnimation()
{
rangeBtnAnim.Play("RangeSelectionButton_Pressed");
}
答案 0 :(得分:1)
我在游戏中使用过的东西。假设您有两个动画:“空闲”和“动画”。 您希望动画完成后的按钮停留在最后一帧吗?然后,创建第三个动画Animated_Remains,它仅包含一个帧,最后一个来自Animated。
然后,在您的动画控制器中,在Animated(无循环)和Animated_Remains(循环)之间进行过渡。如果您希望从“动画”过渡到“空闲”时具有相同的行为,则可以创建第四个动画“ Idle_Remains”。
因此,单击按钮后,它将播放Animated动画,并自动过渡到Animated_Remains。
当我不得不用动画来移动我的相机并使它停留在最后一帧位置时,我这样做了。
答案 1 :(得分:1)
我只会将此设置与Parameters
一起使用制作PressedAnimation
剪辑不 Loop Time
,并使用bool
参数,例如IsPressed
。 (也可以使用触发器代替,但是在这种情况下,布尔操作更简单,更省力-触发器堆栈...)
比过渡设置:
空闲-> PressedAnimation
和PressedAnimation->空闲
比起您的代码,您应该进行设置
rangeBtnAnim.SetBool("IsPressed", true);
或
rangeBtnAnim.SetBool("IsPressed", false);
回到空闲状态。
注意,实际上,制作动画(如果不复杂的话)的最简单方法是在Idle
中仅拥有 1 个关键帧,并且在PRessedAnimation
中。 Unity会简单地根据过渡持续时间设置制作一个过渡动画,在值之间进行插值。
或者,如果您的动画变得更加复杂,您可能宁愿做类似的事情
对于这两个过渡
PressedAnimation-> StayPRessed
UnPressAnimation->空闲
使用ExitTime
另两个使用参数
和