Unity3D_Quad_实现播放序列帧

//最近看了FlappyBird  看小鸟飞的方式不错 这里来写写看 :)

那么,开始吧~

首先我们需要一个包含小鸟飞行的序列帧图片:

酱紫:

可以看到这里有3帧动画 我们循环切换这3帧动画  就可以使小鸟动起来

我们导入这个贴图   制作Material 将贴图赋值给这个材质:

Shader 选择Unlit/Transparent 透明材质  下面说下Tiling  Offset参数 (自己动手调下就明白)

Tiliing x 代表在X方向上 显示的百分比  Offse  x 代表x方向上起始位置的偏移量

本序列帧中有3帧   所以每次播放的是都是1/3  约为0.3333 要使小鸟动起来  现在就是要写脚本控制每次的位移量

0:位移0  1:位移0.3333  2:位移0.6666   3:位移0  4:位移0.3333  5:位移0.6666   ......

编写脚本;首先 我们需要定义1s内播放的帧数  暂定10次  也就是说每一帧播放需要的时间是1/10s

再者 需要判断当前时间 到底该播放哪一帧

这里需要分清小鸟一帧  和Update()函数里的帧   这是两个不同的概念

 1 void Update () {
 2         timer += Time.deltaTime;
 3 
 4         if (timer >= 1.0f / framePerSec)
 5         {
 6             frameCount++;
 7             timer -= 1.0f / framePerSec;
 8 
 9             int freamIndex = frameCount % 3;
10 
11             //update the material 's offset
12             MeshRenderer mr= this.gameObject.GetComponent<MeshRenderer>();
13             if (mr != null)
14             {
15                 mr.material.SetTextureOffset("_MainTex", new Vector2((float)0.333*freamIndex,0));
16             }
17         }
18     }

 

posted on 2015-12-02 12:09  许清池  阅读(1618)  评论(0编辑  收藏  举报

导航