using UnityEngine; namespace Invector { public class vAnimateUV : MonoBehaviour { public Vector2 speed; public Renderer _renderer; public string[] textureParameters = new string[] { "_MainTex" }; private Vector2 offSet; private MaterialPropertyBlock propertyBlock; private int[] texturePropertyIds; private void Awake() { propertyBlock = new MaterialPropertyBlock(); texturePropertyIds = new int[textureParameters.Length]; for (int i = 0; i < textureParameters.Length; i++) texturePropertyIds[i] = Shader.PropertyToID(textureParameters[i]); } void Update() { if (_renderer == null) return; offSet.x += speed.x * Time.deltaTime; offSet.y += speed.y * Time.deltaTime; _renderer.GetPropertyBlock(propertyBlock); for (int i = 0; i < textureParameters.Length; i++) propertyBlock.SetVector(texturePropertyIds[i], offSet); _renderer.SetPropertyBlock(propertyBlock); } } }