Version: 5.4
public Color GetPixelBilinear (float u, float v);

説明

正規化座標(u, v)でフィルタリングされたピクセルのカラーを取得します

Coordinates u and v go from 0.0 to 1.0, just like UV coordinates in meshes. If coordinates are out of bounds (larger than 1.0 or smaller than 0.0), they will be clamped or repeated based on the texture's wrap mode.

Texture coordinates start at lower left corner. UV of (0,0) lands exactly on the bottom left texel; and UV of ((width-1)/width, (height-1)/height) lands exactly on the top right texel.

返ったピクセルカラーはバイリニアフィルタリングされます。

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

関連項目: GetPixel.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Texture2D sourceTex; public float warpFactor = 1.0F; private Texture2D destTex; private Color[] destPix; void Start() { destTex = new Texture2D(sourceTex.width, sourceTex.height); destPix = new Color[destTex.width * destTex.height]; int y = 0; while (y < destTex.height) { int x = 0; while (x < destTex.width) { float xFrac = x * 1.0F / (destTex.width - 1); float yFrac = y * 1.0F / (destTex.height - 1); float warpXFrac = Mathf.Pow(xFrac, warpFactor); float warpYFrac = Mathf.Pow(yFrac, warpFactor); destPix[y * destTex.width + x] = sourceTex.GetPixelBilinear(warpXFrac, warpYFrac); x++; } y++; } destTex.SetPixels(destPix); destTex.Apply(); GetComponent<Renderer>().material.mainTexture = destTex; } }

関連項目: GetPixel.