ピクセルのカラー配列を取得します
この機能は、全体のピクセルカラーの配列を返す
テクスチャのミップレベル
平面の配列を返す、ピクセルは右から左にレイアウトされている
下から上に(行の後の行)。配列サイズは使用されるミップレベルの高さ、幅である。
デフォルトのミップレベルは 0 (ベーステクスチャ)です。その場合、サイズはテクスチャのサイズにぴたりと一致します。
一般的にミップレベルのサイズは mipWidth=max(1, width>>miplevel)
そして高さも同様です。
テクスチャはインポートセッティングの Read/Write Enabled フラグを設定しなくてはいけません。でなければこのファンクションは失敗するでしょう。
GetPixels を使用すると、繰り返し GetPixel とを呼び出すよりも高速になります
特に大規模なテクスチャであれば高速になります。さらに、GetPixels は個々のミップマップレベルにアクセスすることができます。
ピクセルカラーのかたまりのすべてを返す GetPixels を使う方が早いでしょう。
int 値を float 値に変換します。
See Also: GetPixels32.
// Get a rectangular area of a texture and place it into a new // texture the size of the rectangle.
// Source texture and the rectangular area we want to extract. var sourceTex: Texture2D; var sourceRect: Rect;
function Start () { // The values in the Rect structure are floats, so round them // down to the nearest integer. var x = Mathf.FloorToInt(sourceRect.x); var y = Mathf.FloorToInt(sourceRect.x); var width = Mathf.FloorToInt(sourceRect.width); var height = Mathf.FloorToInt(sourceRect.height);
// Get the pixel block and place it into a new texture. var pix = sourceTex.GetPixels(x, y, width, height); var destTex = new Texture2D(width, height); destTex.SetPixels(pix); destTex.Apply();
// Set the current object's texture to show the // extracted rectangle. GetComponent.<Renderer>().material.mainTexture = destTex; }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Texture2D sourceTex; public Rect sourceRect; void Start() { int x = Mathf.FloorToInt(sourceRect.x); int y = Mathf.FloorToInt(sourceRect.x); int width = Mathf.FloorToInt(sourceRect.width); int height = Mathf.FloorToInt(sourceRect.height); Color[] pix = sourceTex.GetPixels(x, y, width, height); Texture2D destTex = new Texture2D(width, height); destTex.SetPixels(pix); destTex.Apply(); GetComponent<Renderer>().material.mainTexture = destTex; } }
See Also: SetPixels, mipmapCount.
ピクセルのカラー配列を取得します
この関数は、上記の GetPixels の拡張版です。 全体ミップレベルだけでなく y と x で始まる blockHeight と blockWidth を返も返します。 ブロックは使用される MIP レベルに適合しなければなりません。返される配列は blockWidth* blockHeight サイズです。