2011年7月13日 星期三

UNITY3D - 連續貼圖

U3D不支援顯示gif檔案,但是我們可以利用程式來將一連串的靜態圖片顯示得跟動態圖片無異。
首先建立一個empty object然後加入下面component script。

=======================================================================
var aTexture : Texture[]; //靜態圖片組
var framePerSecond : int; //每秒播放張數
var x : int; //x軸位置(以pixel為單位)
var y : int; //y軸位置(以pixel為單位)
private var startTime : float;
function Start () {
    startTime = Time.time; //記錄開始時間,確保圖從第一張開始放。
}
function OnGUI () {
    var index : int = ((Time.time - startTime) * framePerSecond) % aTexture.Length;
    GUI.DrawTexture(Rect(x, y, aTexture[index].width, aTexture[index].height), aTexture[index], ScaleMode.StretchToFill, true, 0);
}

=======================================================================
加入component後將靜態圖按順序設給aTexture以及設定framePerSecond與XY軸就可以看到在設好的(x,y)上顯示靜態圖片組成的動畫了。

沒有留言:

張貼留言