Unity3D制作序列帧动画的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Unity3D制作序列帧动画的⽅法
当我们需要制作动态炫酷科技感很强的UI时,美术⼀般会给我们提供⼀些序列图,这时候我们只需在程序⾥实现序列动画。

⼀.动画机
unity⾃带的帧动画机很⽅便,我们⾸先选择所要播放序列帧动画的Image,然后在Window下选择Animation,会弹出⼀个动画制动的界⾯,我们选择Create,然后进⼊如下界⾯:
我们按照如下添加动画控制的属性,
然后将我们美术给我们的序列图(要设置成2DandUI模式哦)拖⼊到动画帧⾯板⾥。

Unity⾃带的动画机播放序列帧动画很简单也很⽅便,但是有⼀定的局限性。

因为我们不能很⽅便的控制动画的进程以及⼀些我们的要求。

(虽然也可以,但是还是需要写代码,然后还要操控动画机,太费劲)。

下⾯就介绍完全⽤代码控制动画播放的⽅法。

⼆.代码控制
这个⽅法完全⽤代码实现,不需要在去操作⼀下动画机了。

代码如下:
public class Test : MonoBehaviour {
[SerializeField]
private Image image;
[SerializeField]
private List<Sprite> animationSprites = new List<Sprite>();
private int AnimationAmount { get { return animationSprites.Count; } }
public void PlayAnimation()
{
if (image == null) image = GetComponent<Image>();
StartCoroutine(PlayAnimationForwardIEnum());
}
private IEnumerator PlayAnimationForwardIEnum()
{
int index = 0;//可以⽤来控制起始播放的动画帧索引
gameObject.SetActive(true);
while (true)
{
//当我们需要在整个动画播放完之后重复播放后⾯的部分就可以展现我们纯代码播放的⾃由性
if (index > AnimationAmount - 1)
{
index = 50;
}
image.sprite = animationSprites[index];
index++;
yield return new WaitForSeconds(0.03f);//等待间隔控制动画播放速度
}
}
}
效果图如下:
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

相关文档
最新文档