Как я могу переместить объект (например, цвет заливки игрового объекта с помощью GUITexture) с помощью щелчка мыши / касания к сетке и проверить, содержит ли цвет заливки для каждой плитки?
Если вы используете Camera.main.ScreenToWorldPoint, то не можете проверить содержимое. Текущий мой код для проверки работает нормально, но игровой объект не перемещается с помощью мыши :(
Изображение ссылки: https://i.imgur.com/cHoS0YV.png
Мой код следующий:
void OnMouseDown()
{
Vector2 mousePos = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
transform.position = mousePos;
Debug.Log("OnMouseDown: transform.position: " + transform.position);
}
void OnMouseDrag()
{
Vector2 mousePos = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
transform.position = mousePos;
Debug.Log("transform.position: " + transform.position);
foreach (var x in GameBoard.Instance.listTileInGrid)
{
if (x.RectTile.Contains(mousePos))
{
Debug.Log("change color");
x.ColorId = 1;
}
}
}
Заранее спасибо!
Обновить:
я меняю:
transform.position = mousePos;
to
transform.guiTexture.transform.position = Camera.main.ScreenToViewportPoint(Input.mousePosition);