Карта с нажатием на страны
Добавлено: 11 июл 2018, 23:11
Подскажите, необходимо сделать карту со странами, где на страны можно будет тыкать и соответственно определять на какую страну я тыкнул. Нашел решение с помощью уникальных цветов для каждой страны, но не получается понять как правильно определять место тыка.
Вот карта для примера
Я знаю что можно использовать texture.GetPixel и получить цвета нужного пикселя, но у меня не получается правильно определить координаты того места куда я тыкнул. На данный момент весь код выглядит так, но он не работает
В общем, как именно можно определять координаты того места на текстуре куда я тыкнул? А не координаты относительно мира
Вот карта для примера
Скрытый текст:
Я знаю что можно использовать texture.GetPixel и получить цвета нужного пикселя, но у меня не получается правильно определить координаты того места куда я тыкнул. На данный момент весь код выглядит так, но он не работает
Синтаксис:
Используется csharp
if (Input.GetMouseButton(0))
{
Vector2 curPointV2 = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
RaycastHit2D hit = Physics2D.Raycast(curPointV2, Vector2.zero, Mathf.Infinity);
if (hit)
{
GameObject hitedObj = hit.collider.gameObject;
Texture2D texture = hitedObj.GetComponent<SpriteRenderer>().sprite.texture;
Debug.Log((int)curPointV2.x + " " + (int)curPointV2.y);
Color pixelColor = texture.GetPixel((int)curPointV2.x, (int)curPointV2.y);
//Debug.Log(texture.width +" " + texture.height);
Debug.Log(pixelColor.r + " " + pixelColor.b + " " + pixelColor.g);
}
}
{
Vector2 curPointV2 = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
RaycastHit2D hit = Physics2D.Raycast(curPointV2, Vector2.zero, Mathf.Infinity);
if (hit)
{
GameObject hitedObj = hit.collider.gameObject;
Texture2D texture = hitedObj.GetComponent<SpriteRenderer>().sprite.texture;
Debug.Log((int)curPointV2.x + " " + (int)curPointV2.y);
Color pixelColor = texture.GetPixel((int)curPointV2.x, (int)curPointV2.y);
//Debug.Log(texture.width +" " + texture.height);
Debug.Log(pixelColor.r + " " + pixelColor.b + " " + pixelColor.g);
}
}
В общем, как именно можно определять координаты того места на текстуре куда я тыкнул? А не координаты относительно мира