unity3d 纹理动画

不知道大家有没有玩过赛车游戏

赛车游戏的跑道有路标,如下图

玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动

不会发动态图,大家脑补一下吧

没有玩过赛车游戏的也不要紧,大家见过游戏中的瀑布或者湖面吗?如下图:高山流水

 

当然,我这个贴图的效果不是很好,不过我这里要说的是原理,不妨碍,我们继续

图中的瀑布从上往下流动

我们都知道,如果用粒子的话,有几百个瀑布,在手机上肯定是非常卡的

差一点的手机说不定游戏刚打开就未响应了

除非要求是非常逼真的那种水才用粒子系统,能不用尽量不用

用纹理动画的话虽然达不到粒子那么逼真,但是也是一种不错的解决方案

纹理动画耗费资源还是粒子动画耗费资源呢?我们一探究竟

小二,上图

好勒客官,马上来

 

这是瀑布的材质球,我们手动修改OffsetX

按每次+0.1这样修改:0.1,0.2,0.3,0.4....

我们会发现,每修改一次材质球就会相应的变动

现在我们归零,修改一下OffsetY,依旧和修改X一样的方法

我们会发现材质球也会有相应的变动,但是方向不一样

如果只观察材质球感觉不容易看出来,那就把材质球挂到物体上,这样看的清楚一些

好了,我们知道如果让材质球动起来了,修改offset即可,那么我们就开始敲代码吧

创建一个 TextureAnimation.cs

定义一个变量:public float XSpeed = 0.1f;//X轴移动速度

然后有了下面的代码

1      public float XSpeed = 0.1f;//X轴移动速度
2  
3      void FixedUpdate()
4      {
5          renderer.material.mainTextureOffset = new Vector2(Time.time * XSpeed, renderer.material.mainTextureOffset.y);    
6      }

 我们挂到瀑布上,然后运行,我们发现瀑布动起来了,但是似乎移动方向和速度不对劲

没关系,我们刚才修改的是X轴,我们在加上Y轴和移动速度不就行了?

依法炮制得出下面的完整代码:

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 /// 纹理动画 <summary>
 5 /// 纹理动画
 6 /// </summary>
 7 public class TextureAnimation : MonoBehaviour
 8 {
 9     public bool MoveX = false;//是否移动X
10     public bool ToUp = false;//往上移动
11     public float XSpeed = 0.1f;//X轴移动速度
12     private float offsetX = 0;
13     
14     public bool MoveY = false;//是否移动Y
15     public bool ToLeft = false;//往左移动
16     public float YSpeed = 0.1f;//Y轴移动速度
17     private float offsetY = 0;
18 
19     
20     void FixedUpdate()
21     {
22         if (MoveX)
23         {
24             offsetX = Time.time * XSpeed;
25             if (ToUp) offsetX *= -1;
26         }
27 
28         if (MoveY)
29         {
30             offsetY = Time.time * YSpeed;
31             if (ToLeft) offsetY *= -1;
32         }
33 
34         renderer.material.mainTextureOffset = new Vector2(offsetX, offsetY);    
35     }
36 }

我就不多解释了,房东一会儿过来收房租了

真烦,我都租了大半年了,想在续租一个月,因为还有一个月我才上班

原来房租是850一个月,现在居然想收我900一个月

原因是我只续租一个月

我教了一千块押金,他怕我跑了不给水电费,非要我在给一千块

我让他来收电费他也不来,说太冷了。。。。

什么人啊这是。。。

不说了,我先闪了

本文链接:http://www.cnblogs.com/shenggege/p/4264463.html

原文地址:https://www.cnblogs.com/shenggege/p/4264463.html