flybird 的小鸟动画

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Bird : MonoBehaviour {
 5 
 6     public float timer = 0;
 7     public int freamNumber = 10;   //每秒播放的帧数 帧速率
 8     public int freamCount = 0;     //帧数
 9     private Renderer rend;
10     // Use this for initialization
11     void Start () {
12     rend =GetComponent <Renderer >();
13     }
14     
15     // Update is called once per frame
16     void Update () {
17         timer += Time.deltaTime;    //时间自增
18         //Debug.Log(timer);
19         if (timer >= 1.0f / freamNumber) {
20             freamCount++;
21             timer -= 1.0f / freamNumber;
22             int freamIndex = freamCount % 3;
23             rend .material .SetTextureOffset ("_MainTex",new Vector2 (0.333f*freamIndex ,0));
24             //Debug.Log(freamCount);
25         }
26     }
27 }

 这里难理解的就是小鸟的动画部分;

在Update函数中,

if (timer >= 1.0f / freamNumber)  
可以保证此时timer和1.0f/freamNumber的值大小是相当的;


之后再次添加代码

timer -= 1.0f / freamNumber;
可使得此时的timer的值接近于0,
然后在执行
timer += Time.deltaTime;    //时间自增
使得timer和Time.deltaTime的值大小相当,然后
if (timer >= 1.0f / freamNumber)
即 自增的时间大于Time.deltaTime>1.0f / freamNumber
posted @ 2015-11-05 20:07  半步_天涯  阅读(202)  评论(0)    收藏  举报