unity 截图
unity 截图适用于各分辨率
float scr;void Start(){scr = Screen.width /2160.00f;//2160是我做程序时的分辨率 Screen.width为打包后机器的分辨率}/// <summary>/// 区域截图/// </summary>/// <param name="rectT"></param>/// <param name="ac"></param>/// <retu rns></returns>public IEnumerator GetScreenTexture(RectTransform rectT, Action<Texture2D> ac){yield return new WaitForEndOfFrame();Texture2D screenShot = new Texture2D((int)(rectT.rect.width * scr), (int)(rectT.rect.height * scr), TextureFormat.RGB24, true);float x = (rectT.anchoredPosition3D.x + (Screen.width - rectT.rect.width * scr) / 2);float y = (rectT.anchoredPosition3D.y + (Screen.height - rectT.rect.height * scr) / 2 + rectT.parent.GetComponent<RectTransform>().anchoredPosition3D.y * scr);//父物体的坐标Debug.Log("x:" + x + ":y:" + y);Rect position = new Rect(x, y, rectT.rect.width * scr, rectT.rect.height * scr);Debug.Log("rect:" + position);screenShot.ReadPixels(position, 0, 0, true);//按照设定区域读取像素;注意是以左下角为原点读取screenShot.Apply();ac(screenShot);}