使用 Unity3D 和 VRTK,我需要使用VRTK_Pointer
脚本获取我指向的纹理上的像素值。
我创建了一个脚本,附加到一个名为COLOR_GRID的球体上,我声明了一个Texture2D
对应于球体纹理的公共成员。它包含此方法,当我指向并单击球体时会调用该方法。
private void DoPointerDestinationSet(object sender, DestinationMarkerEventArgs e)
{
DebugLogger(VRTK_ControllerReference.GetRealIndex(e.controllerReference), "POINTER DESTINATION", e.target, e.raycastHit, e.distance, e.destinationPosition);
if (e.target.name == "COLOR_GRID")
{
int[] coordinates = ????
Color c = this.GetPixel(coordinates[0], coordinates[1]);
}
}
从e.raycastHit
,我可以访问,我猜,指针对球体的影响的局部坐标。使用这些信息,问题是如何将此局部坐标转换为Texture2D
坐标?但我被困在那里。
或者有更好的方法吗?
编辑:e.raycastHit.textureCoord
总是(0,0)。