Используя 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).