Unity检测UI上的像素 判断颜色

/*****************************
 * Title:        
 * Date:         2022.11.01
 * Author:       玄策
 * UnityVersion: 2022.1.21
 * Func:              
 * 
 ****************************/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class NewBehaviourScript : MonoBehaviour
{
    RenderTexture rt;  //RawImage上的RenderTexture

    Texture2D texture;
    Color color;

    float ins;

    void Start()
    {
        StartCoroutine(CaptureScreenshot());
    }

    IEnumerator CaptureScreenshot()
    {
        while (true)
        {
            //只在每一帧渲染完成后才读取屏幕信息
            yield return new WaitForEndOfFrame();

            //RawImage上的RenderTexture
            rt = GetComponent().texture as RenderTexture;
            texture = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false);
            RenderTexture.active = rt;
            texture.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);

            //RawImage上的trxture
            //texture = GetComponent().texture as Texture2D;
            //texture.Apply();

            color = texture.GetPixel((int)Input.mousePosition.x, (int)Input.mousePosition.y);

            //注:当屏幕不是1920*1080时,获取前端页面(1920)与当前屏幕分辨率的比例
            //ins = (float)texture.width / (float)Screen.width;
            //color = texture.GetPixel((int)(Input.mousePosition.x * ins), (int)(Input.mousePosition.y * ins));

            Debug.Log (
                  color.r * 255 + ",       "
                + color.g * 255 + ",       "
                + color.b * 255 + ",       "
                + color.a * 255);
        }
    }
}

你可能感兴趣的:(Unity检测UI上的像素 判断颜色)