天天看點

Unity Texture切割元素圖檔顯示

  •  需求:将如下圖檔裡面的字母取出來顯示一個字母
Unity Texture切割元素圖檔顯示

1. 圖檔設定如圖:

Unity Texture切割元素圖檔顯示

2. 設定RawImage物體:

Unity Texture切割元素圖檔顯示

3. 圖檔内每個字母的大小為128*128 整個圖檔大小1024*1024,計算設定UVRect寬高為:0.125,0.125.

4. 代碼如下:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class Test : MonoBehaviour,IPointerClickHandler {
    public Texture texture;//圖檔 圖檔左上角A為(0,0)索引值
    private float perSize = 0.125F;//每個字母大小
    private int colunCount = 8;//一行8個字母
    private int letterCount = 52;//大小寫字母一共52個

    //滑鼠點選随機取一個字母顯示
    public void OnPointerClick(PointerEventData eventData)
    {
        //随機取字母索引值
        int count = (int)UnityEngine.Random.Range(0, letterCount);
        Debug.Log("擷取字母:" + count + "==" + (((char)(65 + count - (count / 26) * 26))).ToString());
        //計算字母在圖檔内第幾行 
        int row = (int)count / (int)colunCount;
        //計算字母在圖檔内第幾列
        int column = count - row * colunCount;
        Debug.Log(string.Format("第{0}行第{1}個", row, column));
        //設定UV資料
        GetComponent<RawImage>().uvRect = new Rect(column * perSize, 0.875f - row * perSize, perSize, perSize);
    }

}
           

繼續閱讀