using UnityEngine;
using UnityEngine.UI;
public class NewBehaviourScript : MonoBehaviour
{
? ? RenderTexture rt;? //RawImage上的RenderTexture
? ? Texture2D texture;
? ? Color color;
? ? void Start()
? ? {
? ? ? ? StartCoroutine(CaptureScreenshot());
? ? }
? ? IEnumerator CaptureScreenshot()
? ? {
? ? ? ? while (true)
? ? ? ? {
? ? ? ? ? ? //只在每一幀渲染完成后才讀取屏幕信息
? ? ? ? ? ? yield return new WaitForEndOfFrame();
? ? ? ? ? ? //RawImage上的RenderTexture
? ? ? ? ? ? rt = GetComponent<RawImage>().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<RawImage>().texture as Texture2D;
? ? ? ? ? ? texture.Apply();
? ? ? ? ? ? color = texture.GetPixel((int)Input.mousePosition.x, (int)Input.mousePosition.y);
? ? ? ? ? ? Debug.Log (
? ? ? ? ? ? ? ? ? color.r * 255 + ",? ? ? "
? ? ? ? ? ? ? ? + color.g * 255 + ",? ? ? "
? ? ? ? ? ? ? ? + color.b * 255 + ",? ? ? "
? ? ? ? ? ? ? ? + color.a * 255);
? ? ? ? }
? ? }
}