Изменение Scale и Offset текстурных координат происходят в материале и потому клонируют его, создавая дополнительный DrawCall.
Где подобное может встретиться? В текстурных атласах спрайтов и эффектов, когда картинку на плашке определяют uv-смещением в нужную позицию. Разумеется, удобнее всего это сделать операцией
- Код: Выделить всё
my.renderer.material.SetTextureOffset ("_MainTex", v2Offset);
... что и дарит нам плусадын дравчик.
Дабы этого избежать, если в вашем проекте есть атласы эффектов, спрайтов и тому подобное, на инициализации изменяйте uv-развертку самого меша (благо спрайты и эффекты часто состоят из 4 и чуть более вертексов):
- Код: Выделить всё
var mf : MeshFilter = GetComponent(MeshFilter);
var mesh : Mesh = mf.mesh;
var uvs : Vector2[] = mesh.uv ;
for (var i=0;i<uvs.length;i++)
uvs[i] += v2Offset;
mesh.uv = uvs;