【发布时间】:2017-10-21 01:49:41
【问题描述】:
我创建了一个 Unity 球体并应用了具有反照率纹理的标准材质。现在我正在尝试旋转网格 uvs(看起来这是旋转纹理的最简单方法)
这里是代码
using UnityEngine;
public class GameController : MonoBehaviour
{
public GameObject player;
public float rotationValue;
void Start ()
{
Mesh mesh = player.GetComponent<MeshFilter>().mesh;
Vector2[] uvs = mesh.uv;
mesh.uv = changeUvs(uvs);
}
private Vector2[] changeUvs (Vector2[] originalUvs)
{
for (int i = 0; i < originalUvs.Length; i++)
{
originalUvs[i].x = originalUvs[i].x + rotationValue;
if (originalUvs[i].x > 1)
{
originalUvs[i].x = originalUvs[i].x - 1f;
}
}
return originalUvs;
}
}
【问题讨论】:
-
删除
changeUvs()中的条件。 Unity 可以支持 [0,1] 之外的范围,并且您所做的事情会拉伸纹理,例如 [0.95,1.05] 将变为 [0.95,0.05]。
标签: opengl unity3d uv-mapping