using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CommonSpriteAnimation : MonoBehaviour {
//精灵图片集合
public Sprite[] sprites;
//动画执行时间
public float animTime = 1f;
//精灵渲染器
private SpriteRenderer renderer;
//渲染图片位置
private int rendererPosition;
//渲染图片间隔
private float rendererTimer;
void Start () {
//获得精灵图片渲染器对象
renderer = GetComponent<SpriteRenderer> ();
}
/// <summary>
/// 获得动画执行时间
/// </summary>
/// <returns>The animation time.</returns>
public float getAnimationTime(){
return animTime;
}
/// <summary>
/// 执行动画
/// </summary>
public void startAnimation(){
//验证对象合法性
if(renderer == null || sprites == null || sprites.Length==0){
return;
}
//初始化参数: 位置、间隔
rendererPosition = 0;
rendererTimer = animTime / sprites.Length;
//开启协同执行动画
StartCoroutine (doAnimation());
}
/// <summary>
/// 执行动画:固定间隔,顺序渲染图片
/// </summary>
/// <returns>The animation.</returns>
IEnumerator doAnimation(){
while(rendererPosition < sprites.Length){
renderer.sprite = sprites[rendererPosition];
rendererPosition += 1;
yield return new WaitForSecondsRealtime (rendererTimer);
}
}
// //测试动画
// float t = 2f;
// float t1 = 2f;
// void Update(){
// if(t1>t){
// t1 = 0;
// startAnimation ();
// }
// t1 += Time.deltaTime;
// }
}
脚本控制序列帧图动画
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 帧动画的例子很多了。反正就是把图片一张一张的播放呗。通常都需要建立一个xml文件来管理图片。比如这样: 然而,对于...
- 序列帧:肉眼可以接受最高每秒20帧以内的动画 属性: 设置 animation 图片self.imageView....
- 版本记录 前言 app中好的炫的动画可以让用户耳目一新,为产品增色不少,关于动画的实现我们可以用基本动画、关键帧动...