Я пытаюсь получить цвет определенного пикселя на необработанном изображении, но это не работает. Не могли бы вы помочь? Это код, который я использовал:
public RawImage map;
public void OnPointerClick(PointerEventData eventData)
{
Vector3 localPosition = transform.InverseTransformPoint(eventData.pressPosition);
Color colour = (map.texture as Texture2D).GetPixel(
Mathf.RoundToInt(localPosition.x),
Mathf.RoundToInt(localPosition.y));
Debug.Log(colour);
Clicked();
}
Спасибо!
Как возникает это событие? От щелчка куда угодно? PressPosition - это координаты положения на экране? Соответствуют ли размер и разрешение изображения размеру / разрешению экрана?
Я пытаюсь определить конкретный пиксель, на который щелкнули изображение, которое находится где-то на всем холсте, чтобы я мог найти цвет пикселя, на который щелкнули, который может быть частью любого изображения, которое все является подобъектами холста.
Однако это сложно, потому что изображения, по сути, являются странами на карте мира - я думаю, что холст должен иметь те же размеры, что и карта мира, а подобъекты должны иметь точные размеры самого изображения страны.
@derHugo Я ответил на ваши вопросы
Должно ли это быть связано с текстурами или было бы нормально просто получить данные о цвете пикселя на экране в целом (хотя может содержать молнии и т. д.)?
И вы не объяснили, что происходит, чего вы не ожидаете .. или в чем проблема?
Это могут быть данные о цвете в целом
Когда я нажимаю что-то на необработанном изображении, на выходе получается «1,1,1,1», который белый, но я нажимаю на что-то желтое.
@derHugo Я ответил на ваши вопросы





а в чем именно проблема? Не могли бы вы быть более конкретными, чем
it isn't working? Вы также уверены, что получите доступ кlocalPosition.xиlocalPosition.y? не может бытьz?