Unity--貼圖動畫的實現
阿新 • • 發佈:2019-01-09
- var frames : Texture[];
- //宣告一個數組,存放貼圖,聲明後,在inspector會看到一個frames的陣列,
- //陣列的長度可以自己填,填1,就代表只有1張圖,可以把一張texture拖進去,填2就代表2張,以此類推
- var framesPerSecond = 10; //宣告fps,每秒播放幾幀,影響動畫的速度。
- function Update() {
- var index : int = (Time.time * framesPerSecond) % frames.Length;
-
//陣列的索引,根據時間改變,當前時間乘以fps與總幀數取餘,就是播放的當前幀,隨著update更新
- renderer.material.mainTexture = frames[index]; //渲染這個貼圖
- }
在3dsmax中 用材質球調的 貼圖UV偏移動畫不可以直接匯入Unity的。可以用下面的程式碼實現:偏移的速度設定scrollSpeed
[csharp] view plaincopyprint?
- var scrollSpeed = 5;
- var countX : int = 4;
- var countY : int = 4;
- private var offsetX = 0.0;
- private var offsetY = 0.0;
-
private
- function Start() {
- singleTexSize = Vector2(1.0/countX, 1.0/countY);
- renderer.material.mainTextureScale = singleTexSize;
- }
- function Update ()
- {
- var frame = Mathf.Floor(Time.time*scrollSpeed);
- offsetX = frame/countX;
-
offsetY = -(frame - frame%countX) /countY / countX;
- renderer.material.SetTextureOffset ("_MainTex", Vector2(offsetX, offsetY));
- }