Как получить значение пиксела текстуры, на которую вы указываете DestinationMarkerEventHandler? - PullRequest
0 голосов
/ 02 июля 2018

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

...