Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Texture2D.GetPixels

マニュアルに切り替える
public Color[] GetPixels(int miplevel = 0);

パラメーター

説明

ピクセルのカラー配列を取得します

この機能は、全体のピクセルカラーの配列を返す テクスチャのミップレベル

平面の配列を返す、ピクセルは右から左にレイアウトされている 下から上に(行の後の行)。配列サイズは使用されるミップレベルの高さ、幅である。 デフォルトのミップレベルは 0 (ベーステクスチャ)です。その場合、サイズはテクスチャのサイズにぴたりと一致します。 一般的にミップレベルのサイズは mipWidth=max(1, width>>miplevel) そして高さも同様です。

テクスチャはインポートセッティングの Read/Write Enabled フラグを設定しなくてはいけません。でなければこのファンクションは失敗するでしょう。

GetPixels を使用すると、繰り返し GetPixel とを呼び出すよりも高速になります 特に大規模なテクスチャであれば高速になります。さらに、GetPixels は個々のミップマップレベルにアクセスすることができます。 ピクセルカラーのかたまりのすべてを返す GetPixels を使う方が早いでしょう。 int 値を float 値に変換します。

See Also: GetPixels32.

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.


public Color[] GetPixels(int x, int y, int blockWidth, int blockHeight, int miplevel = 0);

パラメーター

説明

ピクセルのカラー配列を取得します

この関数は、上記の GetPixels の拡張版です。 全体ミップレベルだけでなく y と x で始まる blockHeight と blockWidth を返も返します。 ブロックは使用される MIP レベルに適合しなければなりません。返される配列は blockWidth* blockHeight サイズです。