Unity用Animation组件制作简单的动画

游戏中经常会出现动态提示,例如提示当前金钱不足,一般会从屏幕中央弹出,然后缓慢的向上飘去。
今天游戏项目中遇到了这么个要求,以前做过几次,但总是会忘记,而且随着unity版本更新,新版本总有些莫名其妙的坑,今天写个文章记录一下。
首先用到的组件是Animation,这个组件可以制作动画。
在这里插入图片描述
先创建一个文件夹,添加一个Animation。

然后创建一个提示框文本,添加上Animation组件。
在这里插入图片描述
然后将刚才创建的Animation拖上去。

注意:在project面板下点击Animation组件是无法添加动画的。
在这里插入图片描述
需要点击具体的物体,比如文本,然后添加动画。
此处我们只需要改变位置,添加一个动画
在这里插入图片描述
此处我们选择位置。

在这里插入图片描述
最上面的这一栏,代表的是帧数,正常情况下0~60帧为一个循环就够用了。
点击左上角的红色录像按钮,代表开始录制动画。
此时,0帧时刻的位置我们不要管,移到60帧的位置,将文本的Y坐标增大。
然后点击这个播放按钮,会发现文本动起来了。
在这里插入图片描述
到此,一个动画效果就做好了,关掉录像,点击运行正常来说就刻意看到动画效果。但是unity高版本有一个坑(我用的是2019),需要点击动画组件,然后打开debug模式,将Legacy勾选上,才会正常运行。
在这里插入图片描述
在这里插入图片描述
此时有个问题,就是如何控制这个文本隐藏了,总不能一直放在这里把,最笨的方法是写一个延时调用Invoke,算好动画时间,将该物体隐藏。
进阶方法是用AnimationEvent
在这里插入图片描述
在上方点击右键,添加event,或者在左方点击小图标都可以。
在这里插入图片描述
点击之后右边会有一个AnimationEvent,这里点击可以选择脚本上绑定的脚本写的方法(Text组件),事件的方法需要写在这个脚本上,目前我只知道这一种方法,后续有其他的方法我还在补充。
在这里插入图片描述
在这里插入图片描述
完整的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class View: MonoBehaviour
{
    
    
    public AnimationTest animationTest;

    private void Update()
    {
    
    
        if (Input.GetKeyDown(KeyCode.A))
        {
    
    
            animationTest.gameObject.SetActive(true);
        }
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AnimationTest : MonoBehaviour
{
    
    
    public void EndEvent()
    {
    
    
        this.gameObject.SetActive(false);
    }
}

补充:我这里动画模式选择的是激活就播放,所以只要控制物体显示即可,如果其他模式可能要调用组件播放动画。

Demo

猜你喜欢

转载自blog.csdn.net/qq_40629631/article/details/121951439