UGUI中点击按钮实现animation动画播放、停止和倒放的代码
时间: 2023-12-10 07:41:18 浏览: 134
以下是一个简单的实现按钮控制动画播放、停止和倒放的代码示例:
```csharp
public class AnimationController : MonoBehaviour
{
public Animation anim;
void Start()
{
Button playButton = GameObject.Find("PlayButton").GetComponent<Button>();
playButton.onClick.AddListener(PlayAnimation);
Button stopButton = GameObject.Find("StopButton").GetComponent<Button>();
stopButton.onClick.AddListener(StopAnimation);
Button reverseButton = GameObject.Find("ReverseButton").GetComponent<Button>();
reverseButton.onClick.AddListener(ReverseAnimation);
}
void PlayAnimation()
{
if (!anim.isPlaying)
{
anim.Play();
}
}
void StopAnimation()
{
if (anim.isPlaying)
{
anim.Stop();
}
}
void ReverseAnimation()
{
if (!anim.isPlaying)
{
anim[anim.clip.name].speed = -1;
anim[anim.clip.name].time = anim[anim.clip.name].length;
anim.Play();
}
else
{
anim[anim.clip.name].speed = -anim[anim.clip.name].speed;
}
}
}
```
在这个示例中,我们首先在 Start 方法中获取到三个按钮的引用,并分别为它们添加了 OnClick 事件监听器。当点击 PlayButton 时,如果动画没有在播放,则调用 Play 方法播放动画;当点击 StopButton 时,如果动画正在播放,则调用 Stop 方法停止动画;当点击 ReverseButton 时,如果动画没有在播放,则调整动画的播放速度和时间,使其倒放并开始播放;如果动画正在播放,则仅调整其播放速度来实现倒放。
注意,以上示例中的 anim 变量需要在 Inspector 面板中手动添加。可以将这个脚本挂在带有 Animation 组件的对象上,然后将该对象拖拽到 anim 变量的引用上。
阅读全文