小さな画面キャプチャ機能を共有するために、著者はここで無料のスクリーンショットの基本プランを提供します。
1. スクリーンショットを撮るためのキャンバスを作成する
画面の背景を作成します。
無料のスクリーンショット領域として ShowImage を作成する
全体的な構成は次のとおりです
2. スクリプトの作成
スクリプトの全体的な考え方は、最初に画面サイズを取得し、次に現在の画面範囲内で必要なスクリーンショット サイズを取得し、最後にそれを表示することです。コードは次のとおりです。
private void Start()
{
StartCoroutine(CaptureGUIPNG());
}
//截取后用来显示的Iamge
public Image ShowImage;
Texture2D _screenShot;
//定义一个协程
IEnumerator CaptureGUIPNG()
{ //WaitForEndOfFrame在OnGUI之后执行
yield return new WaitForEndOfFrame();
RectTransform rect = ShowImage.GetComponent<RectTransform>();
_screenShot = new Texture2D(Screen.width, Screen.height, TextureFormat.RGBA32, false);
var width = rect.sizeDelta.x;
var height = rect.sizeDelta.y;
var startx = rect.position.x - (width / 2) * rect.localScale.x;
var starty = rect.position.y - (height / 2) * rect.localScale.y;
_screenShot.ReadPixels(new Rect(startx, starty, width, height), 0, 0);
_screenShot.Apply();
Sprite sp = Sprite.Create(_screenShot,new Rect(0,0, width, height), new Vector2(0.5f, 0.5f), 100.0f);
ShowImage.sprite = sp;
yield return null;
ShowImage.color = Color.white;
}
実行結果は次のとおりで、選択した領域のスクリーンショットが成功したことがはっきりとわかります。
最後に、この記事が役に立った場合は、「いいね!」をお願いします。