Editor script mouse Position mapping grids coordinate problem. The left-bottom grid coordinate should be (0,0), but I get (0,4). Does somebody know how to solve this problem?
public Vector3 WorldToGridCoordinates(Vector3 point)
{
Vector3 gridPoint = new Vector3((int)((point.x-transform.position.x)/GridSize),
(int)((point.y-transform.position.y)/GridSize),0.0f);
return gridPoint;
}
//drawing grid
private void GridGizmo(int cols,int rows)
{
for (int i=1; i<cols;i++)
{
Gizmos.DrawLine(new Vector3(i * GridSize, 0, 0), new Vector3(i * GridSize, rows * GridSize,0));
}
for (int j=1;j<rows;j++)
{
Gizmos.DrawLine(new Vector3(0, j * GridSize, 0), new Vector3(cols * GridSize, j * GridSize, 0));
}
}
//get mouse position for grid
private void EventHandler()
{
HandleUtility.AddDefaultControl(
GUIUtility.GetControlID(FocusType.Passive));
Camera camera = SceneView.currentDrawingSceneView.camera;
Vector3 mousePosition = Event.current.mousePosition;
mousePosition = new Vector2(mousePosition.x, camera.pixelHeight - mousePosition.y);
//Debug.LogFormat(“MousePos:{0}”, mousePosition);
Vector3 worldPos = camera.ScreenToWorldPoint(mousePosition);
Vector3 gridPos = _myTarget.WorldToGridCoordinates(worldPos);
int col = (int)gridPos.x;
int row = (int)gridPos.y;
Debug.LogFormat(“GridPos {0},{1}”, col, row);
