Unity--贴图动画的实现

来源:互联网 发布:vscode git插件 编辑:程序博客网 时间:2024/06/05 05:54
  1. var frames : Texture[];   
  2. //声明一个数组,存放贴图,声明后,在inspector会看到一个frames的数组,  
  3. //数组的长度可以自己填,填1,就代表只有1张图,可以把一张texture拖进去,填2就代表2张,以此类推  
  4.   
  5. var framesPerSecond = 10; //声明fps,每秒播放几帧,影响动画的速度。  
  6.   
  7. function Update() {  
  8.     var index : int = (Time.time * framesPerSecond) % frames.Length;   
  9.     //数组的索引,根据时间改变,当前时间乘以fps与总帧数取余,就是播放的当前帧,随着update更新  
  10.     renderer.material.mainTexture = frames[index]; //渲染这个贴图  
  11. }  

    在3dsmax中 用材质球调的 贴图UV偏移动画不可以直接导入Unity的。可以用下面的代码实现:偏移的速度设置scrollSpeed
[csharp] view plaincopyprint?
  1. var scrollSpeed = 5;  
  2. var countX : int = 4;  
  3. var countY : int = 4;  
  4.   
  5. private var offsetX = 0.0;  
  6. private var offsetY = 0.0;  
  7. private var singleTexSize;  
  8.   
  9. function Start() {  
  10.     singleTexSize = Vector2(1.0/countX, 1.0/countY);  
  11.     renderer.material.mainTextureScale = singleTexSize;  
  12. }  
  13. function Update ()  
  14. {  
  15.   
  16.     var frame = Mathf.Floor(Time.time*scrollSpeed);  
  17.     offsetX = frame/countX;  
  18.     offsetY = -(frame - frame%countX) /countY / countX;  
  19.     renderer.material.SetTextureOffset ("_MainTex", Vector2(offsetX, offsetY));  
  20. }  
0 0
原创粉丝点击