如何通过鼠标单击/触摸到网格来移动对象(例如使用GUITexture的游戏对象填充颜色)并检查每个图块的填充颜色?
如果使用Camera.main.ScreenToWorldPoint则无法检查包含。目前我要检查的代码包含工作正常,但游戏对象不能用鼠标移动:(
链接图片:http://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;
到
transform.guiTexture.transform.position = Camera.main.ScreenToViewportPoint(Input.mousePosition);
答案 0 :(得分:0)
这很简单。您可以使用Vector3.Lerp函数来实现此目的。使用光线投射获取鼠标单击位置或触摸位置。然后使用lerp函数中的初始和最终位置。初始位置是游戏对象现在的位置,最终位置是点击/触摸位置。 你可以在这里找到The Game Contriver的文章