UNITY纹理动画,你值得拥有
现在的游戏发展的越来越丰富了,在很多游戏里面我们可以看到场景里面的水流,瀑布,山峰以及移动的云等等。那么它们有很多都是用到了Shader(着色器),再配合合适的代码才达到了和我们现实差不多的效果。那么早期的游戏,还没有这些新的成熟的技术,就像单机游戏魔兽争霸,那地图里面瀑布这种效果,它们是如何做出来的呢?其实它们是可以用纹理动画做的。今天给大家说说我个人对纹理动画的一些看法吧。
什么是纹理?纹理就是每个物体表面上不同的样子,譬如说木头的木纹状。那么贴图又是什么呢?贴图是图,最简单的形式是ps之类的软件做出来的一张图,这些图在3D中用来贴到物体的表面,用来表现物体的“纹理”。然后我们知道,图贴上去需要坐标的,那么这个坐标就是UV坐标了。图片就是按照这个坐标开始贴,然后我们就看到了。当然今天不是和大家讨论什么是纹理,而是我们在unity里面利用这个纹理能做什么。
比如我们要做一款飞机大战的游戏,那么我们的游戏背景是不是在移动的(当然这只是一种方法,可能有些人用的不是这种),那么可能有些人会用两张一样的图片,这样通过Animator/Animation来做动画。那么这样也是可以的。只不过这样做的话,需要把两张图片的位置弄好,不能出现一点缝隙,不然就太假了。那么这样就很麻烦了。那么我今天就告诉大家,用一个方法,加上几行代码就能做出背景移动的效果。你是不是心动了?那么现在就开始吧!
第一步,我们需要创建一个场景,然后创建一个面片(3D->quad),然后把我们需要的图片里面的WrapMode选项选为Repeat.并且把图片TextueType设为defult.第二步我们把图片拖入quad中去。让它充满整个quad。如图:

第三步,我们把quad里面shader的渲染模式设置为Unlit/TransParent.如图:

然后大家可以在Unity没运行的时候尝试修改Offsetx/y的值,看看有什么神奇的变化。第五步写代码,直接上图:

这里需要提一下,_MainTex是主材质,前面的下划线不要忘*了。代码意思就是根据时间每5秒让图片的纹理完整偏移一次。
好了,大致就是这么些了,有兴趣的朋友可以在深入探索下。个人见解,不喜勿喷哦!