”Unity ムービーテクスチャ”で検索がありましたので すこし説明です。
おおまかにですがUnityエンジンではムービー動画を使う方法 と 一枚にパターンを並べたテクスチャの
UVをずらす方法で実現できるようです。

4.20追記:2Dのスプライトアニメをやりたい場合は、また違ったやり方があります。基本はUVずらしですがそれを拡張して扱いやすくしたスプライトマネージャーというスクリプトが
Wikiに掲載されていますので参考にしてください。
http://www.unifycommunity.com/wiki/index.php?title=SpriteManager


■ムービー動画をテクスチャにする場合
□ムービーテクスチャのマニュアル
http://unity3d.com/support/documentation/Manual/Video%20Files.html
□ムービーテクスチャのリファレンス
http://unity3d.com/support/documentation/ScriptReference/MovieTexture.html

.mov, .mpg, .mpeg, .mp4, .avi, .asf の拡張子の動画を再生することができます。Quicktime が必要。 

//----------------------------------------------------------------------------
function Update () {
if (Input.GetButtonDown ("Jump")) {
if (renderer.material.mainTexture.isPlaying) {
renderer.material.mainTexture.Pause();
}
else {
renderer.material.mainTexture.Play();
}
}
}


コンポーネントでrendererを定義したオブジェクトにスクリプトをアタッチします。
rendererには指定がないので this.renderer というようにアタッチされた自分本体を指すthisが隠れています。
if (Input.GetButtonDown ("Jump"))行はプロジェクトで”Jump"と指定されたボタンが押された場合に
ムービー再生を一時停止 それ以外なら再生を実行 という意味です。
//----------------------------------------------------------------------------


var movTexture : MovieTexture;
↑MovieTextureのタイプで movTextureという値を定義

function Start () {
renderer.material.mainTexture = movTexture;
movTexture.Play();
}  

ムービー再生は      movTexture.Play();
ムービー再生の停止は  movTexture.Stop(),
ムービーの一時停止は  movTexture.Pause(),
などの予約関数があります。

ただし ムービーはムービー画像のサイズ容量が大きく 実行速度がやや重ためです。
そして プロバージョンのみで対応します。 

ですので キャラクタアニメのパターンチェンジに用いる場合などは一枚のスプライトにしてUV値を
ずらすことで定義する次の方法が良いかとおもわれます。




■テクスチャのUVでアニメーションする場合
http://www.unifycommunity.com/wiki/index.php?title=Animating_Tiled_texture

http://www.unifycommunity.com/wiki/index.php?title=Animating_Tiled_texture_-_Extended

wikiにはこの2つの例が掲載されています。以下コードの内容を転載させてもらいました。

var uvAnimationTileX = 24; //Here you can place the number of columns of your sheet.
//The above sheet has 24

var uvAnimationTileY = 1; //Here you can place the number of rows of your sheet.
//The above sheet has 1
var framesPerSecond = 10.0;

function Update () {

// Calculate index
var index : int = Time.time * framesPerSecond;
// repeat when exhausting all frames
index = index % (uvAnimationTileX * uvAnimationTileY);

// Size of every tile
var size = Vector2 (1.0 / uvAnimationTileX, 1.0 / uvAnimationTileY);

// split into horizontal and vertical index
var uIndex = index % uvAnimationTileX;
var vIndex = index / uvAnimationTileX;

// build offset
// v coordinate is the bottom of the image in opengl so we need to invert.
var offset = Vector2 (uIndex * size.x, 1.0 - size.y - vIndex * size.y);

renderer.material.SetTextureOffset ("_MainTex", offset);
renderer.material.SetTextureScale ("_MainTex", size);
}

Torchanimation_135


↑のようにアニメーションパターンを一枚に並べてUVの値をずらすことでアニメーションさせています。
スクリプトの肝は SetTextureOffset()の行で UVのオフセットを与えてテクスチャを実質ずらして表示する箇所です。

この方法 アニメーションテクスチャの展開がやや手間なので便利なフォトショップのスクリプトへのリンクを掲載します。

■フォトショップでレイヤーを自動でスプライトの並びに変換してくれるスクリプト
がありました。
http://www.garagegames.com/community/blogs/view/11527

http://ezupa.com/gg/layersToSpirte.zip

layerstosprites



レイヤーに分割されたアニメーションデータを一枚のテクスチャに並べ直すスクリプトです。

使用方法はフォトショップのインストールフォルダ下のスクリプトに格納して 
C:\Program Files\Adobe\Photoshop\Presets\Scripts\layersToSprite.js
ファイル>スクリプト で実行してください。スクリプト項目があるのはフォトショップCS以上だと思います。
File > Automate > Scripts: layersToSprite.js


numLayers = docRef.artLayers.length;
の下に
if ( numLayers < cols )
{
cols = numLayers;
}
を追加するとそのままでも動きますがより良い動きをしてくれる と某スレで指摘がありました。


さらにUnityエンジンのパーティクルシステムを使用する方法もあります。



■パーティクルシステムを使用する方法


パーティクルシステムにはあらかじめテクスチャを自動でアニメーションする機能が付いています。
Stretch particlesの値は ”Billboard” か ”Sorted Billboard"に設定してください。 Billboardはアクティブなカメラ方向を向くという設定です。


particleanim

particleanim1


One shotにチェックを入れるとパーティクルはMeshで指定されたモデルの頂点に一度だけ出現します。 そしてenergyを0 velocityを0にすることで
頂点にとどまります。 Interporate Trianglesにチェックを入れるとポリゴン面上にパーティクルが発生します。
つまりMeshモデルの頂点の調整で自在にパーティクルの出現位置をコントロールできるわけです。

画像のスクリプト”rotater”は移動方向に パーティクルの回転が準ずるようにするもので、製作中のSTGでは雲の表現に使用しています。
アニメーションだけならこれはなくてもかまいませんが 参考までにスクリプトを掲載します。 スクリプトはUnityの公式フォーラムを参考したのですけど
元記事のアドレスを失念してしまいました。

// Script ”rotator”-----------------------------------------------------------------------
var xSpeed : float = 1;
var ySpeed : float = 1;
var zSpeed : float = 1;

var manual : boolean = false;

function Update ()
{

if( !manual )
{

transform.RotateAround( transform.position, Vector3.right, ySpeed * Time.deltaTime );
transform.RotateAround( transform.position, Vector3.up, xSpeed * Time.deltaTime );
transform.RotateAround( transform.position, Vector3.forward, zSpeed * Time.deltaTime );

}
else
{

if( Input.GetAxis("Horizontal") != 0 )
{

transform.RotateAround( transform.position, Vector3.up, Input.GetAxis("Horizontal")*xSpeed * Time.deltaTime );

}

if( Input.GetAxis("Vertical") != 0 )
{

transform.RotateAround( transform.position, Vector3.right, Input.GetAxis("Vertical")*ySpeed * Time.deltaTime );

}

}

}
//-----------------------------------------------------------------------------------------------------------------




と こんな感じですがわかりますでしょうか。
テクスチャアニメーションについてはアンリアルエンジンなどでも同様の方法(UVずらし)が取られていますので、他のエンジンでも応用は利くと思われます。