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

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Texture2D.GetPixels

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

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

Parameters

miplevel ピクセルをフェッチするためのミップマップレベル。デフォルトは 0。

Returns

Color[] テクスチャのミップマップレベルのすべてのピクセル配列

Description

テクスチャからピクセル色を取得します。

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

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

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

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


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

Parameters

x フェッチするピクセル配列の x 位置。
y フェッチするピクセル配列の y 位置。
blockWidth フェッチするピクセル配列の幅の長さ。
blockHeight フェッチするピクセル配列の高さ。
miplevel ピクセルをフェッチするミップマップレベル。デフォルトは 0。 オプショナル。

Returns

Color[] 選択されたテクスチャのピクセル配列。

Description

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

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

no example available in JavaScript
// Get a rectangular area of a texture and place it into
// a new texture the size of the rectangle.
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {

// Source texture and the rectangular area we want to extract. public Texture2D sourceTex; public Rect sourceRect; void Start() { int x = Mathf.FloorToInt(sourceRect.x); int y = Mathf.FloorToInt(sourceRect.y); 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(); // Set the current object's texture to show the // extracted rectangle. GetComponent<Renderer>().material.mainTexture = destTex; } }