source | 読み込み元のビューの長方形領域。 |
destX | テクスチャ内の読みこむピクセルの水平位置。 |
destY | テクスチャ内の読みこむピクセルの垂直位置。 |
recalculateMipMaps | テクスチャのミップマップを読んだ後に再計算するかどうか |
スクリーン画面からテクスチャデータへと保存するためのピクセルデータを読み込みます
現在アクティブな RenderTexture と定義位置のビューに(/ソース/パラメーターで指定された)から長方形ピクセル領域にコピーします
左下を( 0, 0 )座標とするピクセル空間を使用します。
recalculateMipMaps が True に設定されている場合、テクスチャのミップマップは更新されます。recalculateMipMaps が False に設定されている場合は、Apply を呼び出し再計算する必要があります。
レンダーターゲットが似ているとき(例えば、32 や 16 ビットの RenderTexture)、この関数は ARGB32
と RGB24
のテクスチャ形式で動作します。
HDR レンダーターゲット(ARGBFloat や ARGBHalf レンダーテクスチャ形式)から HDR テクスチャ形式(RGBAFloat や RGBAHalf)へとすることで読み込みをサポートします。
テクスチャはまた Read/Write フラグをインポート設定で設定します
// This script should be attached to a camera.
// Grab the camera's view when this variable is true. var grab: boolean;
// The "display" is the object whose texture will be set // to the captured image. var display: Renderer;
function OnPostRender() { if (grab) { // Make a new texture of the right size and // read the camera image into it. var tex = new Texture2D(128, 128); tex.ReadPixels(new Rect(0, 0, 128, 128), 0, 0); tex.Apply();
// Set the display texture to the newly captured image. display.material.mainTexture = tex;
// Reset the grab variable to avoid making multiple // captures. grab = false; } }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public bool grab; public Renderer display; void OnPostRender() { if (grab) { Texture2D tex = new Texture2D(128, 128); tex.ReadPixels(new Rect(0, 0, 128, 128), 0, 0); tex.Apply(); display.material.mainTexture = tex; grab = false; } } }
See Also: EncodeToPNG.