1. 程式人生 > >Unity--貼圖動畫的實現

Unity--貼圖動畫的實現

  1. var frames : Texture[];   
  2. //宣告一個數組,存放貼圖,聲明後,在inspector會看到一個frames的陣列,
  3. //陣列的長度可以自己填,填1,就代表只有1張圖,可以把一張texture拖進去,填2就代表2張,以此類推
  4. var framesPerSecond = 10; //宣告fps,每秒播放幾幀,影響動畫的速度。
  5. function Update() {  
  6.     var index : int = (Time.time * framesPerSecond) % frames.Length;   
  7.     //陣列的索引,根據時間改變,當前時間乘以fps與總幀數取餘,就是播放的當前幀,隨著update更新
  8.     renderer.material.mainTexture = frames[index]; //渲染這個貼圖
  9. }  

    在3dsmax中 用材質球調的 貼圖UV偏移動畫不可以直接匯入Unity的。可以用下面的程式碼實現:偏移的速度設定scrollSpeed
[csharp] view plaincopyprint?
  1. var scrollSpeed = 5;  
  2. var countX : int = 4;  
  3. var countY : int = 4;  
  4. private var offsetX = 0.0;  
  5. private var offsetY = 0.0;  
  6. private
     var singleTexSize;  
  7. function Start() {  
  8.     singleTexSize = Vector2(1.0/countX, 1.0/countY);  
  9.     renderer.material.mainTextureScale = singleTexSize;  
  10. }  
  11. function Update ()  
  12. {  
  13.     var frame = Mathf.Floor(Time.time*scrollSpeed);  
  14.     offsetX = frame/countX;  
  15.     offsetY = -(frame - frame%countX) /countY / countX;  
  16.     renderer.material.SetTextureOffset ("_MainTex", Vector2(offsetX, offsetY));  
  17. }