Unity3D 给模型偏移纹理
2015-06-24 14:38
162 查看
给模型偏移纹理
using UnityEngine; using System.Collections; [RequireComponent(typeof(Renderer))] public class ModelTextureAnimation : MonoBehaviour { //材质索引 public int MaterialIndex; //材质主纹理名字 public string TextureName = "_MainTex"; //行数 public int Column = 1; //列数 public int Row = 1; //每帧间隔 public float Inverval = 0.333f; //当前帧索引 public int Index = 0; private Renderer mRenderer; private Material mMaterial; // Use this for initialization void Start () { mRenderer = renderer; mMaterial = mRenderer.sharedMaterials[MaterialIndex]; mMaterial.SetTextureScale(TextureName, new Vector2(1.0f / Column, 1.0f / Row)); StartCoroutine(Animate()); } IEnumerator Animate() { SetTextureOffset(); while(true) { yield return new WaitForSeconds(Inverval); if (true == mRenderer.active) { Index++; Index %= (Column * Row); SetTextureOffset(); } } } //根据帧数算出Offset void SetTextureOffset() { float x = (1.0f / Column) * (Index % Column); float y = (1.0f / Row) * (Index / Column); mMaterial.SetTextureOffset(TextureName, new Vector2(x,y)); } // Update is called once per frame #if UNITY_EDITOR void Update () { mMaterial.SetTextureScale(TextureName, new Vector2(1.0f / Column, 1.0f / Row)); } #endif }
相关文章推荐
- Unity3d《Shader篇》Logo闪光特效
- Unity3D研究院之Assetbundle的实战(六十三)
- Unity3D实践系列07,组件的启用或禁用开关,物体的的可见或不可见开关,以及相应事件
- Unity3D游戏开发之Unity与Android交互调用研究
- unity中使用自定义shader进行光照贴图烘培无法出现透明度的坑爹问题
- Unity3d简单json库中SimpleJSON.cs源码
- Metaio in Unity3d 教程--- 四:再谈谈图片扫描之tracking配置文件
- Metaio in Unity3d 教程--- 三. 使用ID Marker作为扫描目标
- Metaio in Unity3d 教程---Metaio扫描图片要求(Image Tracking)
- Unity3D实践系列06,球体撞击物体游戏
- Metaio in Unity3d 教程--- 二. 创建自己的Application
- Metaio in Unity3d 教程--- 一. 搭建环境,运行官方案例
- 浅尝Unity 3D的Asset Bundle知识(一)
- 使用Subversion对unity3d进行版本控制
- Unity3D 特效粒子数查找工具
- Unity学习-NGUI结合Shader小地图的制作(三)
- unity各个版本下载地址
- Unity小地图制作(二)
- unity5, UI Button "On Button Down"
- 分别修改Cube每个面的贴图UV(Unity3D开发之十八)