I need to take screen shoot of specific area of my UI, so I need a Rect to use in Texture2D.ReadPixel().
I tried to put an Image on the GameObject and use a script like this:
Rect data=Image.GetPixelAdjustedRect();
voidOnGUI()
{
GUI.Box(data,"test")
}
The result :((the white box is what I’m trying to capture, you can see the darker GUI draw on the upper left)
Im also tried to use
RectTranform.GetWorldCorners()//Take 4 corners of the rectTranform
Camera.WorldToScreenPoint()//And use this to convert them to pixel coordinate
to create a Rect but no luck even it seem closer :((
Please tell me where I’m doing wrong!
Full script
public RectTransform rect;
//public Image rect;
public Camera UICam;
private Rect data;
Vector3[] corners=new Vector3[]{Vector3.zero,Vector3.zero,Vector3.zero,Vector3.zero};
Vector2[] rectConners=new Vector2[]{Vector3.zero,Vector3.zero,Vector3.zero,Vector3.zero};
rect.GetWorldCorners (corners);
for(int i=0; i<4;i++)
{
rectConners[i]=UICam.WorldToScreenPoint (corners[i]);
}
data=new Rect();
data.max=rectConners[2];
data.min=rectConners[0];
//data=rect.GetPixelAdjustedRect();

