纳金网
标题:
贴图动画显示原理
[打印本页]
作者:
晃晃
时间:
2011-10-8 08:28
标题:
贴图动画显示原理
using UnityEngine;
using System.Collections;
public class TextureAnimation : MonoBehaviour {
public int uvAnimationTileX = 8; //贴图横排的图片数量
public int uvAnimationTileY = 5; //贴图竖排的图片数量
public float framesPerSecond = 10.0f;//速度
void Update () {
// 控制速度
int index = Mathf.RoundToInt(Time.time * framesPerSecond);
// 使得速度不会因为图片的数量改变
index = index % (uvAnimationTileX * uvAnimationTileY);
// 单张图片的大小
Vector2 size = new Vector2 (1.0f / uvAnimationTileX, 1.0f / uvAnimationTileY);
// 播放图片(也就是当前图片的行列)
int uIndex = index % uvAnimationTileX;
int vIndex = index / uvAnimationTileX;
// build offset
// 单张图片的位置(单张图片的位置是左下角)
Vector2 offset = new Vector2 (uIndex * size.x, 1.0f - size.y - vIndex * size.y);
renderer.material.SetTextureOffset ("
_
MainTex", offset);
renderer.material.SetTextureScale ("
_
MainTex", size);
}
}
通过改变
贴图
的tiling 和offset来实现贴图
动画
。所以主要原理就是理解贴图的tiling和offset属性的含义。
tiling就是贴图实际显示的大小显示整张贴图数组就是为1,是vector2类型,因为有宽和高,分别对应x,y。
offset就是显示贴图的的位置。整张的显示是(0,0)。这里的坐标远点在题图的左下角。
示意图
红框就是tiling(图片显示的部分)。
绿色的点就是offset。是绿色坐标系上的一个坐标,有了图片的位置的显示大小就可以根据需要显示贴图了。
作者:
C.R.CAN
时间:
2012-2-17 23:21
很经典,很实用,学习了!
作者:
C.R.CAN
时间:
2012-3-15 23:19
再看一看,再顶楼主
作者:
BU Secret
时间:
2012-3-16 17:55
很不错
作者:
BU Secret
时间:
2012-3-16 17:56
牛叉
作者:
彬彬
时间:
2012-3-16 19:38
作者:
tc
时间:
2012-3-29 23:25
加精、加亮滴铁子,尤其要多丁页丁页
作者:
tc
时间:
2012-4-9 23:32
已阵亡的 蝶 随 风 舞 说过 偶尔按一下 CTRL A 会发现 世界还有另一面
作者:
菜刀吻电线
时间:
2012-5-8 23:20
“再次路过……”我造一个-----特别路过
作者:
tc
时间:
2012-6-4 23:19
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长
作者:
晃晃
时间:
2012-9-19 09:58
凡系斑竹滴话要听;凡系朋友滴帖要顶!
作者:
tc
时间:
2013-2-28 23:25
发了那么多,我都不知道该用哪个给你回帖了,呵呵
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5