座標(x,y)のピクセルのカラーを取得します
ピクセル座標が境界を超えた場合(width/height よりも大きく、または0より小さく)、 テクスチャのラップモードに基づいてクランプされるかリピートされます。 もしテクスチャから大きなピクセルのかたまりを読み込む場合、 ピクセルカラーのかたまりのすべてを返す.GetPixelsを使う方が早いでしょう。 テクスチャはインポートセッティングのRead/Write Enabledフラグを設定しなくてはいけません。でなければこのファンクションは失敗するでしょう。 See Also: GetPixels, SetPixel, GetPixelBilinear.
// Sets the y coordinate of the transform to follow the heightmap var heightmap : Texture2D; var size = Vector3 (100, 10, 100); function Update () { var x : int = transform.position.x / size.x * heightmap.width; var z : int = transform.position.z / size.z * heightmap.height; transform.position.y = heightmap.GetPixel(x, z).grayscale * size.y; }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Texture2D heightmap; public Vector3 size = new Vector3(100, 10, 100); void Update() { int x = transform.position.x / size.x * heightmap.width; int z = transform.position.z / size.z * heightmap.height; transform.position.y = heightmap.GetPixel(x, z).grayscale * size.y; } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public heightmap as Texture2D public size as Vector3 = Vector3(100, 10, 100) def Update() as void: x as int = ((transform.position.x / size.x) * heightmap.width) z as int = ((transform.position.z / size.z) * heightmap.height) transform.position.y = (heightmap.GetPixel(x, z).grayscale * size.y)