Unity--贴图动画的实现

111 篇文章 3 订阅
  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 plain copy print ?
  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. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值