using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class TextureTest : MonoBehaviour
    {
        //変更したい色
        Color setColor = new Color(1.0f, 0f, 0f);
    
        Shader shader;
        Material material;
    
        Vector2 textureSize;
        Vector2 textureOffset;
    
        public int number = 0;
        / Start is called before the first frame update/
        void Start()
        {
            Texture tex;
        
            //今ののシェーダー情報を取得
            shader = this.GetComponent<Image>().material.shader;
    
            //取得したシェーダーを元に新しいマテリアルを作成
            material = new Material(shader);
    
            //テクスチャ1つあたりのサイズを得る
            tex =this.GetComponent<Image>().sprite.texture;
            textureSize =new Vector2( tex.width, tex.height);
    
            //テクスチャ1つ分のオフセット幅を得る
            //全体サイズが1なので1つあたりの幅で割り、100を掛ける
            textureOffset = new Vector2(  1 / textureSize.x * 100.0f, 1 / textureSize.y * 100.0f);  
    
            //表示したい位置へオフセットx文字数だけ移動する(今回はY軸方向の移動なし)
            material.mainTextureOffset = new Vector2( textureOffset.x *  number, 0f);
    
            // 色を変更する
            material.color = setColor;
    
            //新しいマテリアルを適用
            this.GetComponent<Image>().material = material;
       
        }
    
        // Update is called once per frame
        void Update()
        {
    
        }
    
        void FixUpdate(){
           
        }
    
        private void OnDestroy()
        {
            if( material != null ){
                Destroy(material);
                material = null;
            }
        }
    }