首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

unity,纹路动画

2012-10-14 
unity,纹理动画unity中可以通过AnimationClip对纹理进行动画.新建一个javascript脚本,然后附加到有纹理的g

unity,纹理动画
unity中可以通过AnimationClip对纹理进行动画.
新建一个javascript脚本,然后附加到有纹理的gameobject上.

function Start(){var curve:AnimationCurve = AnimationCurve.Linear(0,0,4,360);var clip:AnimationClip = new AnimationClip();clip.SetCurve("",typeof(Material),"_MainTex.rotation",curve);/**Material有几个属性可以控制:_MainTex.rotation,_MainTex.scale,(x左右,y上下)_MainTex.offset,(x左右,y上下)_Color(rgba),(控制颜色的变化)*/animation.AddClip(clip,clip.name);animation.Play(clip.name);}
1 楼 chwu 2012-02-02   using UnityEngine;
using System.Collections;

  public class AnimatedTextureUVPro : MonoBehaviour {
public int uvAnimationTileX = 1;
public int uvAnimationTileY = 1;
public float framesPerSecond = 10.0f;
// Use this for initialization
void Start ()
{

}

// Update is called once per frame
void Update ()
{
// Calculate index
int index = (int)(Time.time * framesPerSecond);
    // repeat when exhausting all frames
    index = index % (uvAnimationTileX * uvAnimationTileY);

   
    // Size of every tile
    Vector2 size = new Vector2 ((float)1.0 / uvAnimationTileX, (float)1.0 / uvAnimationTileY);
   
    // split into horizontal and vertical index
    int uIndex = (int) index % uvAnimationTileX;
    int vIndex = (int) index / uvAnimationTileX;

    // build offset
    // v coordinate is the bottom of the image in opengl so we need to invert.
    Vector2 offset = new Vector2 ((float)uIndex * size.x,(float)1.0 - size.y - vIndex * size.y);
   
    renderer.material.SetTextureOffset ("_MainTex", offset);
    renderer.material.SetTextureScale ("_MainTex", size);

}
}

热点排行