游戏中经常会出现动态提示,例如提示当前金钱不足,一般会从屏幕中央弹出,然后缓慢的向上飘去。
今天游戏项目中遇到了这么个要求,以前做过几次,但总是会忘记,而且随着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);
}
}
补充:我这里动画模式选择的是激活就播放,所以只要控制物体显示即可,如果其他模式可能要调用组件播放动画。文章来源:https://www.toymoban.com/news/detail-444160.html
Demo文章来源地址https://www.toymoban.com/news/detail-444160.html
到了这里,关于Unity用Animation组件制作简单的动画的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!